1/** 2* HostCMS 3* 4* @author Hostmake LLC, http://www.hostcms.ru/ 5* @version 5.x 6*/ 7 8if (typeof HostcmsEscape == 'undefined') 9{ 10 function HostcmsEscape(str) 11 { 12 return encodeURIComponent(str); 13 } 14} 15 16function function_exists(function_name) 17{ 18 if (typeof function_name == 'string') 19 { 20 return (typeof window[function_name] == 'function'); 21 } 22 else 23 { 24 return (function_name instanceof Function); 25 } 26} 27 28function getWindowId(WindowId) 29{ 30 if (typeof WindowId == 'undefined' || WindowId == '') 31 { 32 WindowId = 'id_content'; 33 } 34 35 return WindowId; 36} 37 38// СобÑÑие - нажаÑие клавиÑи. 39document.onkeydown = DoKeyDown; 40 41// ÐолÑзоваÑелÑÑкий обÑабоÑÑик ÑобÑÑÐ¸Ñ Ð½Ð°Ð¶Ð°ÑÐ¸Ñ ÐºÐ»Ð°Ð²Ð¸Ñ, 42// Ð´Ð»Ñ Ð¾Ð±ÑабоÑки Ctrl + ÑÑÑелка. 43function DoKeyDown(event) 44{ 45 if (!document.getElementById) 46 { 47 return; 48 } 49 50 if (window.event) 51 { 52 event = window.event; 53 } 54 55 if (event.ctrlKey) 56 { 57 var Element = null; 58 59 switch (event.keyCode ? event.keyCode : event.which ? event.which : null) 60 { 61 case 0x25: // Ðазад 62 Element = document.getElementById('id_prev'); 63 break; 64 65 case 0x27: // ÐпеÑед 66 Element = document.getElementById('id_next'); 67 break; 68 } 69 70 if (Element && Element.href) 71 { 72 // РедиÑÐµÐºÑ Ð½Ð° нÑжнÑÑ ÑÑÑаниÑÑ. 73 document.location = Element.href; 74 } 75 } 76} 77 78// ÐолÑзоваÑелÑÑкий обÑабоÑÑик ÑобÑÑÐ¸Ñ Ð½Ð°Ð¶Ð°ÑÐ¸Ñ ÐºÐ»Ð°Ð²Ð¸Ñ, 79// Ð´Ð»Ñ Ð¾Ð±ÑабоÑки нажаÑÐ¸Ñ Enter Ñ ÑилÑÑÑа. 80function DoKeyDownFilter(event) 81{ 82 if (!document.getElementById) 83 { 84 return; 85 } 86 87 el = document.getElementById('admin_forms_apply_button'); 88 89 switch (event.keyCode ? event.keyCode : event.which ? event.which : null) 90 { 91 case 13: // Ðвод 92 el.click(); 93 break; 94 } 95} 96 97// ФÑнкÑÐ¸Ñ ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ checkbox ÑедакÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ñ Ñказанного ÑлеменÑа. 98function DoModification(ACheckboxId) 99{ 100 $("#id_content input[type='checkbox'][id='"+ACheckboxId+"']").attr('checked', true); 101} 102 103// УÑÑановка или ÑнÑÑие вÑÐµÑ Ñлажков Ð´Ð»Ñ checkbox'ов ÑлеменÑов. 104function SelectAllItems(WindowId, checked) 105{ 106 WindowId = getWindowId(WindowId); 107 108 $("#"+WindowId+" input[type='checkbox'][name^='check_']").each(function() { 109 var el = $(this); 110 111 var reg = /check_(\d+)_(\S+)/; 112 var arr = reg.exec(el.attr('name')); 113 114 // arr[1] - ID иÑÑоÑника 115 // arr[2] - ID ÑлеменÑа 116 117 // УÑÑанавливаем checked 118 el.attr('checked', checked); 119 120 // ÐодÑвеÑиваем ÑÑÑоÑÐºÑ 121 RowHighlight(WindowId, 'row_' + arr[1] + '_' + arr[2]); 122 }); 123 124 // Check/uncheck top checkbox 125 SetTopCheckbox(WindowId); 126} 127 128// ФÑнкÑÐ¸Ñ Ð¿ÑовеÑÑеÑ, ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð»Ð¸ вÑе checkbox'Ñ, еÑли ÑcÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ - ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð¸ главнÑй, 129// еÑли не ÑÑÑановленÑ, ÑÐ½Ð¸Ð¼Ð°ÐµÑ Ñлажок Ñ Ð³Ð»Ð°Ð²Ð½Ð¾Ð³Ð¾. 130function SetTopCheckbox(WindowId) 131{ 132 WindowId = getWindowId(WindowId); 133 134 // ÐÑе ÑлеменÑÑ Ð²ÑÐ´ÐµÐ»ÐµÐ½Ñ 135 bChecked = ($("#"+WindowId+" input[type='checkbox'][name^='check_']:not(:checked)").length == 0); 136 $("#"+WindowId+" input[type='checkbox'][name^='admin_forms_all_check']").attr('checked', bChecked); 137} 138 139// ФÑнкÑÐ¸Ñ Ð²ÑделÑÑ ÑÑÑÐ¾ÐºÑ ÑаблиÑÑ 140// RowId - иденÑиÑикаÑÐ¾Ñ ÑÑÑоки 141function RowHighlight(WindowId, RowId) 142{ 143 WindowId = getWindowId(WindowId); 144 145 var oRow = $("#" + WindowId + " #" + RowId); 146 147 if (oRow.length == 1) 148 { 149 var reg = /row_(\d+)_(\S+)/; 150 var arr = reg.exec(RowId); 151 152 // arr[1] - ID иÑÑоÑника 153 // arr[2] - ID ÑлеменÑа 154 155 // ÐолÑÑим ÑÐ»ÐµÐ¼ÐµÐ½Ñ ckeckbox 156 if ($("#" + WindowId + " #id_check_" + arr[1] + '_' + arr[2]).attr('checked')) 157 { 158 switch (oRow.attr('class')) 159 { 160 case "row_table": 161 { 162 classname = "Highlight_row_table"; 163 break; 164 } 165 case "row_table_over": 166 { 167 classname = "Highlight_row_table"; 168 break; 169 } 170 case "row_table_odd": 171 { 172 classname = "Highlight_row_table_odd"; 173 break; 174 } 175 case "row_table_over_odd": 176 { 177 classname = "Highlight_row_table_odd"; 178 break; 179 } 180 default: 181 { 182 classname = false; 183 } 184 } 185 classname_over = classname; 186 } 187 else 188 { 189 switch (oRow.attr('class')) 190 { 191 case "Highlight_row_table_odd": 192 { 193 classname = "row_table_odd"; 194 classname_over = "row_table_over_odd"; 195 break; 196 } 197 case "Highlight_row_table": 198 { 199 classname = "row_table"; 200 classname_over = "row_table_over"; 201 break; 202 } 203 default: 204 { 205 classname = false; 206 } 207 } 208 } 209 210 if (classname) 211 { 212 oRow.attr('class', classname) 213 .data('classname_over', classname_over) 214 .data('classname_out', classname) 215 .mouseover(function(){ 216 $(this).attr('class', $(this).data('classname_over')); 217 }) 218 .mouseout(function(){ 219 $(this).attr('class', $(this).data('classname_out')); 220 }); 221 } 222 } 223} 224 225// ФÑнкÑÐ¸Ñ Ð²ÑполнÑÐµÑ ÑобÑÑие, ÑбиÑÐ°ÐµÑ Ð²Ñделение вÑÐµÑ checkbox'ов кÑоме нÑжного. 226// AAction - оÑноÑиÑелÑнÑй адÑÐµÑ Ñайла, коÑоÑÑй бÑÐ´ÐµÑ Ð·Ð°Ð¿ÑоÑен 227// AAdditionalParams - внеÑние пеÑемеÑÑÑ, пеÑедаваемÑе в ÑÑÑÐ¾ÐºÑ Ð·Ð°Ð¿ÑоÑа. ÐÐ¾Ð»Ð¶Ð½Ñ Ð½Ð°ÑинаÑÑÑÑ Ñ & 228// AOperation - название ÑобÑÑÐ¸Ñ 229// AItemName - кодовое Ð¸Ð¼Ñ ÑлеменÑа, над коÑоÑÑм пÑоизводиÑÑÑ Ð´ÐµÐ¹ÑÑвие
230// AAdminFromsId - иденÑиÑикаÑÐ¾Ñ ÑоÑÐ¼Ñ 231// ALimit - ÑекÑÑÐ°Ñ ÑÑÑаниÑа 232// AOnPage - ÑиÑло ÑлеменÑов на ÑÑÑаниÑÑ 233// AOrderFieldId - ID полÑ, по коÑоÑÐ¾Ð¼Ñ Ð¸Ð´ÐµÑ ÑоÑÑиÑовка 234// AOrderDirection - напÑавление ÑоÑÑиÑовки, 1 - по возÑаÑÑаниÑ, 2 - по ÑбÑÐ²Ð°Ð½Ð¸Ñ 235function TrigerSingleAction(AAction, AAdditionalParams, AOperation, AItemName, AAdminFromsId, ALimit, AOnPage, AOrderFieldId, AOrderDirection, WindowId) 236{ 237 WindowId = getWindowId(WindowId); 238 239 var ElementID = 'id_' + AItemName; 240 241 cbItem = $("#"+WindowId+" #"+ElementID); 242 243 if (cbItem.length > 0) 244 { 245 // Uncheck all checkboxes with name like 'check_' 246 $("#"+WindowId+" input[type='checkbox'][name^='check_']:not([name*='_fv_'])").attr('checked', false); 247 248 // Check checkbox 249 cbItem.attr('checked', true); 250 } 251 else 252 { 253 var Check_0_0 = $('<input>') 254 .attr('type', 'checkbox') 255 .attr('name', AItemName) 256 .attr('id', ElementID); 257 258 $('<div>') 259 .attr("style", 'display: none') 260 .append(Check_0_0) 261 .appendTo($("#"+WindowId)); 262 263 // After insert into DOM 264 Check_0_0.attr('checked', true); 265 } 266 267 SetTopCheckbox(WindowId); 268 269 // ÐÑли Ð´Ð»Ñ Ð´ÐµÐ¹ÑÑÐ²Ð¸Ñ Ð±Ñл Ñказан 0, Ñо ÑÑÑанавливаем в false, ÑÑÐ¾Ð±Ñ Ð½Ðµ пеÑедаваÑÑ Ñвно limit в DoLoadAjax() 270 if (ALimit == 0) 271 { 272 ALimit = false; 273 } 274 275 DoLoadAjax(AAction, AAdditionalParams, AAdminFromsId, AOperation, ALimit, AOnPage, AOrderFieldId, AOrderDirection, WindowId); 276} 277 278// ÐÑзов гÑÑпповой опеÑаÑии. 279// AAction - оÑноÑиÑелÑнÑй адÑÐµÑ Ñайла, коÑоÑÑй бÑÐ´ÐµÑ Ð·Ð°Ð¿ÑоÑен 280// AAdditionalParams - внеÑние пеÑемеÑÑÑ, пеÑедаваемÑе в ÑÑÑÐ¾ÐºÑ Ð·Ð°Ð¿ÑоÑа. ÐÐ¾Ð»Ð¶Ð½Ñ Ð½Ð°ÑинаÑÑÑÑ Ñ & 281function CallGroupOperation(AAction, AAdditionalParams, AAdminFromsId, ALimit, AOnPage, AOrderFieldId, 282AOrderDirection) 283{ 284 cbGroupOperation = document.getElementById('id_admin_forms_group_operation'); 285 if (cbGroupOperation) 286 { 287 sOperation = cbGroupOperation.options[cbGroupOperation.selectedIndex].value; 288 if (sOperation != '') 289 { 290 // ÐÑзÑваем ÑÑÐ¸Ð³ÐµÑ Ð¾Ð¿ÐµÑаÑии. 291 DoLoadAjax(AAction, AAdditionalParams, AAdminFromsId, sOperation, ALimit, AOnPage, AOrderFieldId, AOrderDirection); 292 293 return true; 294 } 295 } 296 return false; 297} 298 299// вÑполнÑÐµÑ ÑкÑипÑÑ Ð¸Ð· полÑÑенного оÑвеÑа Ð¾Ñ ÑеÑвеÑа 300function runScripts(scripts) 301{ 302 if (!scripts) 303 { 304 return false; 305 } 306 307 for (var i = 0; i < scripts.length; i++) 308 { 309 var thisScript = scripts[i]; 310 var text; 311 312 if (thisScript.src) 313 { 314 var newScript = document.createElement("script"); 315 newScript.type = thisScript.type; 316 newScript.language = thisScript.language; 317 318 newScript.src = thisScript.src; 319 document.getElementsByTagName('head')[0].appendChild(newScript); 320 } 321 else if (text = (thisScript.text || thisScript.innerHTML)) 322 { 323 var text = (""+text).replace(/^\s*<!\-\-/, '').replace(/\-\->\s*$/, ''); 324 325 var newScript = document.createElement("script"); 326 newScript.setAttribute("type", "text/javascript"); 327 newScript.text = text; 328 329 var script_node = document.getElementsByTagName('head')[0].appendChild(newScript); 330 } 331 } 332} 333 334// ActionName Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑинимаÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ 335// disable - оÑклÑÑение CodePress 336// save - ÑÐ¾Ñ Ñанение даннÑÑ Ð¸Ð· CodePress 337function CodePressAction(ActionName) 338{ 339 if (typeof CodePress != 'undefined') 340 { 341 if (ActionName == 'load') 342 { 343 setTimeout(function(){CodePress.run()}, 500); 344 } 345 else 346 { 347 textarea_array = document.getElementsByTagName("textarea"); 348 349 for (var i = 0; i < textarea_array.length; i++) 350 { 351 var elementId = textarea_array[i].id; 352 if(textarea_array[i].className.match('codepress')) 353 { 354 id = textarea_array[i].id; 355 356 var old_id = id.split('_cp').join(''); 357 358 // Id бÑл заменен CodePress 359 if (old_id != id) 360 { 361 switch (ActionName) 362 { 363 // 364 case 'disable': 365 eval(old_id + '.toggleEditor()'); 366 break; 367 368 case 'save': 369 var eval_code = 'if (typeof ' + old_id + ' != "undefined")' + 370 'document.getElementById("' + id + '").value = ' + old_id + '.getCode();' 371 372 eval(eval_code); 373 //eval('document.getElementById("' + id + '").value = ' + old_id + '.getCode();'); 374 break; 375 } 376 } 377 } 378 } 379 } 380 } 381} 382 383function DisableTinyMCE() 384{ 385 // РабоÑÑ Ñ Ð²Ð¸Ð·ÑалÑнÑм ÑедакÑоÑом ведÑм 386 if (typeof tinyMCE != 'undefined') 387 { 388 textarea_array = document.getElementsByTagName("textarea"); 389 390 for (var i = 0; i < textarea_array.length; i++) 391 { 392 var elementId = textarea_array[i].id; 393 394 if (tinyMCE.getInstanceById(elementId) != null) 395 { 396 textarea_array[i].disabled = true; 397 //tinyMCE.execCommand('mceToggleEditor', false, elementId); 398 tinyMCE.execCommand('mceRemoveControl', false, elementId); 399 } 400 } 401 } 402 403 // ÐÑклÑÑаем вÑе ÑедакÑоÑÑ CodePress, ÑÐ¾Ñ ÑанÑем код в textarea 404 CodePressAction('disable'); 405} 406
407function doSendForm(AAction, AAdditionalParams, ButtonObject, AAdminFromsId, AOperation, ALimit, AOnPage, WindowId) 408{ 409 return SendForm('', AAction, AAdditionalParams, ButtonObject, AAdminFromsId, AOperation, ALimit, AOnPage, WindowId); 410} 411 412function insertContent(object, content) 413{ 414 // Fix blink in FF 415 object.scrollTop(0); 416 object.empty(); 417 object.html(content); 418} 419 420// ÐÑпÑавка ÑоÑÐ¼Ñ Ð¼ÐµÑодом Get или Post 421// AAction - оÑноÑиÑелÑнÑй адÑÐµÑ Ñайла, коÑоÑÑй бÑÐ´ÐµÑ Ð·Ð°Ð¿ÑоÑен 422// AAdditionalParams - внеÑние пеÑемеÑÑÑ, пеÑедаваемÑе в ÑÑÑÐ¾ÐºÑ Ð·Ð°Ð¿ÑоÑа. ÐÐ¾Ð»Ð¶Ð½Ñ Ð½Ð°ÑинаÑÑÑÑ Ñ & 423// ButtonObject - ÐбÑÐµÐºÑ Ð½Ð°Ð¶Ð°Ñой кнопки 424// AAdminFromsId - иденÑиÑикаÑÐ¾Ñ ÑоÑÐ¼Ñ ÑенÑÑа админиÑÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ 425function SendForm(WindowId, AAction, AAdditionalParams, ButtonObject, AAdminFromsId, AOperation, ALimit, AOnPage) 426{ 427 WindowId = getWindowId(WindowId); 428 429 var FormNode = $(ButtonObject).closest('form'); 430 431 // ÐÑÑаемÑÑ Ð¿Ð¾Ð»ÑÑиÑÑ ÑкÑÑÑÑй обÑÐµÐºÑ Ð´Ð»Ñ input-а 432 var jHiddenInput = $("#" + WindowId + " #"+ButtonObject.name); 433 434 // ÐлеменÑа неÑ, добавим его 435 if (jHiddenInput.length == 0) 436 { 437 // Создадим ÑкÑÑÑй input, Ñ.к. нажаÑÑй не пеÑедаеÑÑÑ Ð² ÑоÑÐ¼Ñ 438 FormNode.append($('<input>') 439 .attr('type', 'hidden') 440 .attr('name', ButtonObject.name) 441 .attr('id', ButtonObject.name)); 442 } 443 444 // Ð¡Ð¾Ñ Ñаним из визÑалÑнÑÑ ÑедакÑоÑов даннÑе 445 if (typeof tinyMCE != 'undefined') 446 { 447 tinyMCE.triggerSave(); 448 } 449 450 CodePressAction('save'); 451 452 var JsHttpRequestSendForm = new JsHttpRequest(); 453 454 // Ðод вÑзÑваеÑÑÑ, когда загÑÑзка завеÑÑена 455 JsHttpRequestSendForm.onreadystatechange = function () 456 { 457 if (JsHttpRequestSendForm.readyState == 4) 458 { 459 // УбиÑаем заÑемнение. 460 HideLoadingScreen(); 461 462 if (typeof JsHttpRequestSendForm.responseJS != 'undefined') 463 { 464 // ÐаннÑе запиÑÑваем ÑолÑко Ñогда, еÑли они еÑÑÑ Ð¸ не пÑÑÑÑе. 465 if (typeof JsHttpRequestSendForm.responseJS.form_html != 'undefined' 466 && JsHttpRequestSendForm.responseJS.form_html != '') 467 { 468 // УÑÑанавливаем пÑÑÑ Ð´Ð»Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи в бÑаÑзеÑе Ñ Ð¾Ð´Ð¸ÑÑ Ð²Ð¿ÐµÑед-назад 469 AjaxSetLocation(FormAction); 470 471 // ÐÑклÑÑаем ÑвÑÐ·Ñ Ñ ÑедакÑоÑами 472 DisableTinyMCE(); 473 474 var div_id_content = $("#"+WindowId); 475 476 insertContent(div_id_content, JsHttpRequestSendForm.responseJS.form_html); 477 478 formatTable(WindowId); 479 } 480 481 if (typeof JsHttpRequestSendForm.responseJS.error != 'undefined') 482 { 483 var div_id_message = $("#"+WindowId+" #id_message"); 484 485 if (div_id_message.length == 1) 486 { 487 insertContent(div_id_message, JsHttpRequestSendForm.responseJS.error); 488 } 489 } 490 491 // Title. 492 if (typeof JsHttpRequestSendForm.responseJS.title != 'undefined' && JsHttpRequestSendForm.responseJS.title != '') 493 { 494 document.title = JsHttpRequestSendForm.responseJS.title; 495 } 496 } 497 498 return true; 499 } 500 } 501 502 var FormAction, FormMethod, sOnPage = '', ALimit = ''; 503 504 FormAction = FormNode.attr('action'); 505 FormMethod = FormNode.attr('method'); 506 507 if (AOnPage) 508 { 509 sOnPage = '&admin_forms_on_page=' + AOnPage; 510 } 511 512 // ТекÑÑÐ°Ñ ÑÑÑаниÑа. 513 if (ALimit != 0) 514 { 515 ALimit = '&limit=' + ALimit; 516 } 517 518 // пеÑедаÑа паÑамеÑÑов AAdditionalParams Ñделана Ñвно, а не ÑеÑез hostcmsAAdditionalParams 519 FormAction += (FormAction.indexOf('?') >= 0 ? '&' : '?') + 'hostcmsAAction=' + HostcmsEscape(AAction) + 520 '&hostcmsAAdditionalParams=' + HostcmsEscape(AAdditionalParams) + AAdditionalParams + 521 '&operation=' + AOperation + ALimit + sOnPage; 522 523 FormAction += '&window_id=' + WindowId; 524 525 JsHttpRequestSendForm.open(FormMethod, FormAction, true); 526 527 // ÐÑпÑавлÑем запÑÐ¾Ñ Ð² backend. 528 JsHttpRequestSendForm.send( { query: FormNode.get() } ); 529 530 // ÐÑиÑÑим поле Ð´Ð»Ñ ÑообÑений 531 $("#"+WindowId+" #id_message").empty(); 532 533 // ÐÑобÑажаем ÑкÑан загÑÑзки 534 ShowLoadingScreen(); 535 536 return false; 537} 538 539// action - адÑÐµÑ ÑÑÑаниÑÑ Ð´Ð»Ñ Ð·Ð°Ð¿ÑоÑ
540// method - GET, POST, null - авÑомаÑиÑеÑкое опÑеделение 541// callback_function - ÑÑнкÑÐ¸Ñ Ð¾Ð±ÑаÑного вÑзова, коÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ Ð²Ñзвана поÑле полÑÑÐµÐ½Ð¸Ñ Ð¾ÑвеÑа Ð¾Ñ backenad-а 542function sendRequest(action, method, callback_function) 543{ 544 var req = new JsHttpRequest(); 545 546 // ÐÑобÑажаем ÑкÑан загÑÑзки 547 ShowLoadingScreen(); 548 549 // ÐÑÐ¾Ñ ÐºÐ¾Ð´ вÑзовеÑÑÑ Ð°Ð²ÑомаÑиÑеÑки, когда загÑÑзка даннÑÑ Ð·Ð°Ð²ÐµÑÑиÑÑÑ. 550 req.onreadystatechange = function() 551 { 552 if (req.readyState == 4) 553 { 554 // УбиÑаем заÑемнение. 555 HideLoadingScreen(); 556 557 if (typeof callback_function != 'undefined') 558 { 559 callback_function(req.responseJS); 560 } 561 562 return true; 563 } 564 } 565 566 req.open(method, action, true); 567 568 // ÐÑÑÑлаем даннÑе в обÑабоÑÑик. 569 req.send(null); 570} 571 572// ÐагÑÑзка ÑоÑÐ¼Ñ 573// AAction - оÑноÑиÑелÑнÑй адÑÐµÑ Ñайла, коÑоÑÑй бÑÐ´ÐµÑ Ð·Ð°Ð¿ÑоÑен 574// AAdditionalParams - внеÑние пеÑемеÑÑÑ, пеÑедаваемÑе в ÑÑÑÐ¾ÐºÑ Ð·Ð°Ð¿ÑоÑа. ÐÐ¾Ð»Ð¶Ð½Ñ Ð½Ð°ÑинаÑÑÑÑ Ñ & 575// AAdminFromsId - иденÑиÑикаÑÐ¾Ñ ÑоÑÐ¼Ñ ÑенÑÑа админиÑÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ 576// AOperation - Ð¸Ð¼Ñ ÑобÑÑÐ¸Ñ 577// ALimit - ÑекÑÑÐ°Ñ ÑÑÑаниÑа, false - не оÑпÑавлÑÑÑ ÑÑÑаниÑÑ 578// AOnPage - ÑиÑло ÑлеменÑов на ÑÑÑаниÑÑ 579// AOrderFieldId - ID полÑ, по коÑоÑÐ¾Ð¼Ñ Ð¸Ð´ÐµÑ ÑоÑÑиÑовка 580// AOrderDirection - напÑавление ÑоÑÑиÑовки, 1 - по возÑаÑÑаниÑ, 2 - по ÑбÑÐ²Ð°Ð½Ð¸Ñ 581function DoLoadAjax(AAction, AAdditionalParams, AAdminFromsId, AOperation, ALimit, AOnPage, AOrderFieldId, AOrderDirection, WindowId) 582{ 583 WindowId = getWindowId(WindowId); 584 585 if (AOperation == '') 586 { 587 return false; 588 } 589 590 if (AAdditionalParams == ' ') 591 { 592 AAdditionalParams = ''; 593 } 594 595 var element_name, sOrder = '', sOnPage = '', 596 sElements = '', sFilter = ''; 597 598 // ÐÑли поле ÑоÑÑиÑовки бÑло Ñказано - пеÑедадим поле и напÑавление ÑоÑÑиÑовки 599 if (AOrderFieldId != 0) 600 { 601 sOrder = '&order_field_id=' + AOrderFieldId + '&order_field_direction=' + AOrderDirection; 602 } 603 604 if (AOnPage) 605 { 606 sOnPage = '&admin_forms_on_page=' + AOnPage; 607 } 608 609 // ÐлеменÑÑ ÑпиÑка 610 var jChekedItems = $("#"+WindowId+" :input[type='checkbox'][name^='check_']:checked"), 611 iChekedItemsCount = jChekedItems.length, 612 jItemsValue, iItemsValueCount, sValue; 613 614 for (var jChekedItem, i=0; i < iChekedItemsCount; i++) 615 { 616 jChekedItem = jChekedItems.eq(i); 617 element_name = jChekedItem.attr('name'); 618 619 sElements += '&' + element_name + '=1'; 620 621 // ÐÑем знаÑÐµÐ½Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñей, Ð¸Ð¼Ñ Ð¿Ð¾Ð»Ñ Ð´Ð¾Ð»Ð¶Ð½Ð¾ наÑинаÑÑÑÑ Ñ Ð¸Ð¼ÐµÐ½Ð¸ checkbox-а 622 jItemsValue = $("#"+WindowId+" :input[name^='"+element_name+"_fv_']"), 623 iItemsValueCount = jItemsValue.length; 624 625 for (var jValueItem, k=0; k < iItemsValueCount; k++) 626 { 627 jValueItem = jItemsValue.eq(k); 628 629 if (jValueItem.attr("type") == 'checkbox') 630 { 631 if (jValueItem.attr('checked')) 632 { 633 sValue = '1'; 634 } 635 else 636 { 637 sValue = '0'; 638 } 639 } 640 else 641 { 642 sValue = jValueItem.val(); 643 } 644 645 sElements += '&' + jValueItem.attr('name') + '=' + sValue; 646 } 647 } 648 649 // ФилÑÑÑ 650 var jFiltersItems = $("#"+WindowId+" :input[name^='admin_form_filter_']"), 651 iFiltersItemsCount = jFiltersItems.length; 652 653 for (var jFiltersItem, i=0; i < iFiltersItemsCount; i++) 654 { 655 jFiltersItem = jFiltersItems.eq(i); 656 657 // ÐÑли знаÑение ÑилÑÑÑа до 255 Ñимволов 658 if (jFiltersItem.val().length < 256) 659 { 660 // ÐопиÑÑваем к пеÑедаваемÑм даннÑм 661 sFilter += '&' + jFiltersItem.attr('name') + '=' + HostcmsEscape(jFiltersItem.val()); 662 } 663 } 664 665 // ТекÑÑÐ°Ñ ÑÑÑаниÑа. 666 //if (ALimit == 0) 667 if (ALimit === false) 668 { 669 ALimit = ''; 670 } 671 else 672 { 673 ALimit = '&limit=' + ALimit; 674 } 675
676 cmsrequest = AAction + '?admin_forms_id=' + AAdminFromsId + 677 '&hostcmsAAction=' + HostcmsEscape(AAction) + 678 '&hostcmsAAdditionalParams=' + HostcmsEscape(AAdditionalParams) + 679 '&operation=' + AOperation + ALimit + sOnPage + sFilter + 680 sElements + sOrder + AAdditionalParams; 681 682 if (cmsrequest.length < 2000) 683 { 684 method = 'get'; 685 } 686 else 687 { 688 method = 'post'; 689 } 690 691 // ÐÑпÑавлÑем запÑÐ¾Ñ backend-Ñ 692 sendRequest(cmsrequest, method, callbackfunction_DoLoadAjax); 693} 694 695//УÑÑанавливаеn пÑÑÑ Ð´Ð»Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи в бÑаÑзеÑе Ñ Ð¾Ð´Ð¸ÑÑ Ð²Ð¿ÐµÑед-назад 696function AjaxSetLocation(request) 697{ 698 // УказÑваем ÑекÑÑий пÑÑÑ 699 // ÐенÑем Location ÑолÑко пÑи DoLoadAjax, еÑли веÑнÑлиÑÑ Ð½Ð°Ð·Ð°Ð´ - не менÑем 700 if (request != '' 701 && function_exists('getCmsUrl') 702 && getCmsUrl() != request) 703 { 704 setLocation(request); 705 } 706 707 if (function_exists('saveLocation')) 708 { 709 // Ð¡Ð¾Ñ ÑанÑем ÑекÑÑий пÑÑÑ Ð²Ñегда 710 saveLocation(getCmsUrl()); 711 } 712} 713 714// ФÑнкÑÐ¸Ñ Ð¾Ð±ÑаÑного вÑзова Ð´Ð»Ñ DoLoadAjax 715function callbackfunction_DoLoadAjax(responseJS) 716{ 717 // РезÑлÑÑÐ°Ñ Ð¿ÑинÑÑ 718 sended_request = false; 719 720 if (responseJS != null) 721 { 722 // ÐаннÑе. 723 if (typeof responseJS.form_html != 'undefined') 724 { 725 if (typeof cmsrequest != 'undefined') 726 { 727 // УÑÑанавливаем пÑÑÑ Ð´Ð»Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи в бÑаÑзеÑе Ñ Ð¾Ð´Ð¸ÑÑ Ð²Ð¿ÐµÑед-назад 728 AjaxSetLocation(cmsrequest); 729 } 730 731 // ÐÑклÑÑаем ÑвÑÐ·Ñ Ñ ÑедакÑоÑами 732 DisableTinyMCE(); 733 734 if (responseJS.form_html != '') 735 { 736 var div_id_content = $("#id_content"); 737 738 // ÐанеÑем ÑекÑÑ 739 div_id_content.empty(); 740 div_id_content.html(responseJS.form_html); 741 742 formatTable(); 743 formatTextarea(); 744 745 // ÐÑли Tooltip не ÑкÑÑÑ, Ñо ÑкÑÑваем 746 $("#tooltip").remove(); 747 } 748 749 // СбÑаÑÑваем cmsrequest 750 cmsrequest = ''; 751 752 // ÐÑли Tooltip не ÑкÑÑÑ, Ñо ÑкÑÑваем 753 $("#tooltip").remove(); 754 } 755 756 if (typeof responseJS.error != 'undefined') 757 { 758 var div_id_message = $("#id_message"); 759 760 if (div_id_message.length == 1) 761 { 762 // ÐанеÑем ÑекÑÑ 763 div_id_message.empty(); 764 div_id_message.html(responseJS.error); 765 } 766 } 767 768 // Title. 769 if (typeof responseJS.title != 'undefined' && responseJS.title != '') 770 { 771 document.title = responseJS.title; 772 } 773 774 // РедиÑекÑ. 775 if (typeof responseJS.redirect != 'undefined') 776 { 777 if (responseJS.redirect != '') 778 { 779 ShowLoadingScreen(); 780 location = responseJS.redirect; 781 } 782 } 783 } 784} 785 786// УдалÑÐµÑ Ð´Ð¾ÑеÑние ÑлеменÑÑ ÑлеменÑа Ñ ID, ÑавнÑм node_id 787function deleteChildNodes(node_id) 788{ 789 var node = document.getElementById(node_id); 790 791 if (typeof node != 'undefined') 792 { 793 if (node.hasChildNodes()) 794 { 795 while (node.firstChild) 796 { 797 node.removeChild(node.firstChild); 798 } 799 } 800 } 801} 802 803// ÐÑобÑажение ÑкÑана загÑÑзки AJAX 804function ShowLoadingScreen() 805{ 806 $("body").css("cursor", "wait"); 807 808 var fade_div = $("#id_admin_forms_fade"); 809 810 if (fade_div.length == 0) 811 { 812 // Создаем div 813 fade_div = $('<div></div>') 814 .appendTo(document.body) 815 .hide() 816 .attr('id', "id_admin_forms_fade") 817 .attr('className', "shadowed") 818 .applyShadow() 819 .css('z-index', "1500") 820 .css('position', "absolute") 821 .css('left', "50%") 822 .css('top', "50%") 823 .append('<img src="/admin/images/ajax_loader.gif" id="id_fade_div_img" />') 824 .css('width', "32"); 825 } 826 827 fade_div 828 .show() 829 .css('top', ($(window).height() - fade_div.outerHeight(true)) / 2 + $(window).scrollTop()) 830 .css('left', ($(window).width() - fade_div.outerWidth(true)) / 2 + $(window).scrollLeft()); 831} 832 833// СкÑÑÑие ÑкÑана загÑÑзки AJAX. 834function HideLoadingScreen() 835{ 836 $("body").css("cursor", "auto"); 837 $("#id_admin_forms_fade").css('display', 'none'); 838} 839 840// ФÑнкÑÐ¸Ñ Ð¾Ð±ÑаÑного вÑзова, вÑзÑÐ²Ð°ÐµÐ¼Ð°Ñ Ð¿Ñи полÑÑении оÑвеÑа на Ñдаление изобÑажений 841function callback_function_exec_from_return(responseJS) 842{ 843 // ÐÑполнÑем пÑиÑланнÑе даннÑе 844 if (typeof responseJS != 'undefined') 845 { 846 // ÐаннÑе. 847 if (typeof responseJS.result != 'undefined') 848 { 849 var temp_div = document.createElement('div'); 850 temp_div.style.display = 'none'; 851 temp_div.innerHTML = responseJS.result; 852 853 // ÐÑполнÑем ÑкÑипÑÑ Ð¸Ð· полÑÑенного Ñ ÑеÑвеÑа HTML-а 854 runScripts(temp_div.getElementsByTagName('SCRIPT'));
855 } 856 } 857} 858 859function AddLoadFileField(container_id, input_prefix) 860{ 861 cbItem = document.getElementById(container_id); 862 863 if (cbItem) 864 { 865 // ÐолÑÑаем вÑе input-Ñ 866 element_array = cbItem.getElementsByTagName("input"); 867 868 count_input = element_array.length; 869 870 // <br/> 871 var ElementBr = document.createElement("br"); 872 cbItem.appendChild(ElementBr); 873 874 //<input 875 var ElementInput = document.createElement("input"); 876 ElementInput.setAttribute("size", "60"); 877 ElementInput.setAttribute("name", input_prefix + count_input); 878 ElementInput.setAttribute("type", "file"); 879 ElementInput.setAttribute("title", "ÐÑикÑепиÑÑ Ñайл"); 880 ElementInput.setAttribute("style", "margin-bottom: 20px"); 881 cbItem.appendChild(ElementInput); 882 } 883} 884 885/** 886* Ðобавление полей Ð´Ð»Ñ ÑпеÑ.ÑÐµÐ½Ñ 887* container_id - div, в коÑоÑÑй добавлÑÑÑÑÑ ÑлеменÑÑ 888*/ 889function AddSpecialPricesFields(container_id) 890{ 891 cbItem = document.getElementById(container_id); 892 893 if (cbItem) 894 { 895 // ÐолÑÑаем вÑе input-Ñ 896 element_array = cbItem.getElementsByTagName("input"); 897 898 count_input = element_array.length / 4 + 1; 899 900 // <div style="clear: both;"/> 901 var element_div = document.createElement("div"); 902 element_div.setAttribute("style", "clear: both;"); 903 cbItem.appendChild(element_div); 904 905 // Создаем div 906 var element_div = document.createElement("div"); 907 element_div.setAttribute("class", "item_div"); 908 element_div.setAttribute("style", "float: left;"); 909 cbItem.appendChild(element_div); 910 911 var element_span = document.createElement("span"); 912 element_span.setAttribute("class", "caption"); 913 element_div.appendChild(element_span); 914 915 var element_acronym = document.createElement("acronym"); 916 element_acronym.setAttribute("title", "ÐинималÑное колиÑеÑÑво ÑоваÑа, коÑоÑое нÑжно кÑпиÑÑ Ð·Ð° один Ñаз, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð´ÐµÐ¹ÑÑвоваÑÑ ÑенÑ"); 917 element_acronym.innerHTML = "ÐолиÑеÑÑво ÑоваÑа оÑ"; 918 element_span.appendChild(element_acronym); 919 920 //<input ÐолиÑеÑÑво ÑоваÑа Ð¾Ñ 921 var ElementInput = document.createElement("input"); 922 ElementInput.setAttribute("id", "shop_special_prices_from_" + count_input); 923 ElementInput.setAttribute("type", "text"); 924 ElementInput.setAttribute("onblur", "FieldCheck(this)"); 925 ElementInput.setAttribute("onkeyup", "FieldCheck(this)"); 926 ElementInput.setAttribute("onkeydown", "FieldCheck(this)"); 927 ElementInput.setAttribute("value", ""); 928 ElementInput.setAttribute("name", "shop_special_prices_from_js_" + count_input); 929 ElementInput.setAttribute("style", "width: 120px; background-image: url(/admin/images/bullet_green.gif); background-position: right center; background-repeat: no-repeat;"); 930 element_div.appendChild(ElementInput); 931 932 fieldType["shop_special_prices_from_" + count_input] = {'maxlen' : 11, 933 'reg' : /^[0-9]*$/}; 934 fieldMessage["shop_special_prices_from_" + count_input] = {'reg' : "ÐнаÑение Ð¿Ð¾Ð»Ñ Ð½Ðµ ÑооÑвеÑÑÑвÑÐµÑ ÑоÑмаÑÑ."}; 935 936 //<div id="_error" class="div_message_error"/> 937 var element_div_error = document.createElement("div"); 938 element_div_error.setAttribute("class", "div_message_error"); 939 element_div_error.setAttribute("id", "shop_special_prices_from_" + count_input + "_error"); 940 element_div.appendChild(element_div_error); 941 942 // Создаем div 943 var element_div = document.createElement("div"); 944 element_div.setAttribute("class", "item_div"); 945 element_div.setAttribute("style", "float: left;"); 946 cbItem.appendChild(element_div); 947 948 var element_span = document.createElement("span"); 949 element_span.setAttribute("class", "caption"); 950 element_div.appendChild(element_span); 951 952 var element_acronym = document.createElement("acronym"); 953 element_acronym.setAttribute("title", "ÐакÑималÑное колиÑеÑÑво ÑоваÑа, коÑоÑое нÑжно кÑпиÑÑ Ð·Ð° один Ñаз, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð´ÐµÐ¹ÑÑвоваÑÑ ÑенÑ"); 954 element_acronym.innerHTML = "ÐолиÑеÑÑво ÑоваÑа до"; 955 element_span.appendChild(element_acronym); 956 957 //<input ÐолиÑеÑÑво ÑоваÑа до 958 var ElementInput = document.createElement("input"); 959 ElementInput.setAttribute("id", "shop_special_prices_to_" + count_input); 960 ElementInput.setAttribute("type", "text"); 961 ElementInput.setAttribute("onblur", "FieldCheck(this)"); 962 ElementInput.setAttribute("onkeyup", "FieldCheck(this)"); 963 ElementInput.setAttribute("onkeydown", "FieldCheck(this)"); 964 ElementInput.setAttribute("value", ""); 965 ElementInput.setAttribute("name", "shop_special_prices_to_js_" + count_input); 966 ElementInput.setAttribute("style", "width: 120px; background-image: url(/admin/images/bullet_green.gif); background-position: right center; background-repeat: no-repeat;"); 967 element_div.appendChild(ElementInput); 968 969 fieldType["shop_special_prices_to_" + count_input] = {'maxlen' : 11, 970 'reg' : /^[0-9]*$/}; 971 fieldMessage["shop_special_prices_to_" + count_input] = {'reg' : "ÐнаÑение Ð¿Ð¾Ð»Ñ Ð½Ðµ ÑооÑвеÑÑÑвÑÐµÑ ÑоÑмаÑÑ."}; 972 973 //<div id="_error" class="div_message_error"/> 974 var element_div_error = document.createElement("div"); 975 element_div_error.setAttribute("class", "div_message_error"); 976 element_div_error.setAttribute("id", "shop_special_prices_to_" + count_input + "_error"); 977 element_div.appendChild(element_div_error); 978 979 // Создаем div 980 var element_div = document.createElement("div"); 981 element_div.setAttribute("class", "item_div"); 982 element_div.setAttribute("style", "float: left;"); 983 cbItem.appendChild(element_div); 984 985 var element_span = document.createElement("span"); 986 element_span.setAttribute("class", "caption"); 987 element_div.appendChild(element_span); 988 989 var element_acronym = document.createElement("acronym"); 990 element_acronym.setAttribute("title", "Цена за единиÑÑ ÑоваÑа, кÑпленного в опÑеделенном колиÑеÑÑве"); 991 element_acronym.innerHTML = "Цена"; 992 element_span.appendChild(element_acronym); 993 994 //<input Цена 995 var ElementInput = document.createElement("input"); 996 ElementInput.setAttribute("id", "shop_special_prices_price_" + count_input); 997 ElementInput.setAttribute("type", "text"); 998 ElementInput.setAttribute("onblur", "FieldCheck(this)"); 999 ElementInput.setAttribute("onkeyup", "FieldCheck(this)"); 1000 ElementInput.setAttribute("onkeydown", "FieldCheck(this)"); 1001 ElementInput.setAttribute("value", ""); 1002 ElementInput.setAttribute("name", "shop_special_prices_price_js_" + count_input); 1003 ElementInput.setAttribute("style", "width: 120px; background-image: url(/admin/images/bullet_green.gif); background-position: right center; background-repeat: no-repeat;"); 1004 element_div.appendChild(ElementInput); 1005 1006 fieldType["shop_special_prices_price_" + count_input] = {'reg' : /^[0-9.]*$/}; 1007 fieldMessage["shop_special_prices_price_" + count_input] = {'reg' : "ÐнаÑение Ð¿Ð¾Ð»Ñ Ð½Ðµ ÑооÑвеÑÑÑвÑÐµÑ ÑоÑмаÑÑ."}; 1008 1009 //<div id="_error" class="div_message_error"/> 1010 var element_div_error = document.createElement("div"); 1011 element_div_error.setAttribute("class", "div_message_error"); 1012 element_div_error.setAttribute("id", "shop_special_prices_price_" + count_input + "_error"); 1013 element_div.appendChild(element_div_error); 1014 1015 // или 1016 var element_div = document.createElement("div"); 1017 element_div.setAttribute("class", "item_div"); 1018 element_div.setAttribute("style", "float: left; padding-top: 30px;"); 1019 element_div.innerHTML = " или"; 1020 cbItem.appendChild(element_div); 1021 1022 // Создаем div 1023 var element_div = document.createElement("div"); 1024 element_div.setAttribute("class", "item_div"); 1025 element_div.setAttribute("style", "float: left;"); 1026 cbItem.appendChild(element_div); 1027 1028 var element_span = document.createElement("span"); 1029 element_span.setAttribute("class", "caption"); 1030 element_div.appendChild(element_span); 1031 1032 var element_acronym = document.createElement("acronym"); 1033 element_acronym.setAttribute("title", "ÐÑоÑÐµÐ½Ñ Ð¾Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð¹ ÑенÑ. ÐапÑÐ¸Ð¼ÐµÑ Ð´Ð»Ñ Ñкидки 15% пÑоÑÐµÐ½Ñ Ð¾Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð¹ ÑÐµÐ½Ñ Ð±ÑÐ´ÐµÑ 85"); 1034 element_acronym.innerHTML = "% Ð¾Ñ ÑенÑ"; 1035 element_span.appendChild(element_acronym); 1036 1037 //<input % 1038 var ElementInput = document.createElement("input"); 1039 ElementInput.setAttribute("id", "shop_special_prices_percent_" + count_input); 1040 ElementInput.setAttribute("type", "text"); 1041 ElementInput.setAttribute("onblur", "FieldCheck(this)"); 1042 ElementInput.setAttribute("onkeyup", "FieldCheck(this)"); 1043 ElementInput.setAttribute("onkeydown", "FieldCheck(this)"); 1044 ElementInput.setAttribute("value", "0.00"); 1045 ElementInput.setAttribute("name", "shop_special_prices_percent_js_" + count_input); 1046 ElementInput.setAttribute("style", "width: 120px; background-image: url(/admin/images/bullet_green.gif); background-position: right center; background-repeat: no-repeat;"); 1047 element_div.appendChild(ElementInput); 1048 1049 fieldType["shop_special_prices_percent_" + count_input] = {'reg' : /^[0-9.]*$/}; 1050 fieldMessage["shop_special_prices_percent_" + count_input] = {'reg' : "ÐнаÑение Ð¿Ð¾Ð»Ñ Ð½Ðµ ÑооÑвеÑÑÑвÑÐµÑ ÑоÑмаÑÑ."}; 1051 1052 //<div id="_error" class="div_message_error"/> 1053 var element_div_error = document.createElement("div"); 1054 element_div_error.setAttribute("class", "div_message_error"); 1055 element_div_error.setAttribute("id", "shop_special_prices_percent_" + count_input + "_error"); 1056 element_div.appendChild(element_div_error); 1057 1058 // Ðконка ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ 1059 /* 1060 var element_div = document.createElement("div"); 1061 element_div.setAttribute("class", "item_div"); 1062 element_div.setAttribute("style", "float: left; padding-top: 23px;"); 1063 element_div.innerHTML = '<a href="javascript:void(0)" title="УдалиÑÑ ÑпеÑиалÑнÑÑ ÑенÑ"><img src="/admin/images/delete.gif" alt="УдалиÑÑ ÑпеÑиалÑнÑÑ ÑенÑ" title="УдалиÑÑ ÑпеÑиалÑнÑÑ ÑенÑ"/></a>'; 1064 cbItem.appendChild(element_div); 1065 */ 1066 } 1067} 1068 1069// СкÑÐ¸Ð¿Ñ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑпиÑка ÑиповÑÑ Ð´Ð¸Ð½. ÑÑÑÐ°Ð½Ð¸Ñ 1070function DoLoadLibs(ALibDirId, ALibId) 1071{ 1072 // ÐÑÐ¾Ñ ÐºÐ¾Ð´ вÑзовеÑÑÑ Ð°Ð²ÑомаÑиÑеÑки, когда загÑÑзка даннÑÑ Ð·Ð°Ð²ÐµÑÑиÑÑÑ. 1073 function callbackfunction(responseJS) 1074 { 1075 if (typeof responseJS != 'undefined') 1076 { 1077 // ÐÑводим ÑезÑлÑÑÐ°Ñ Ð² пеÑеменнÑÑ. 1078 html = responseJS.lib_html; 1079 } 1080 else 1081 { 1082 html = ''; 1083 } 1084 1085 document.getElementById('id_lib_id').innerHTML = html; 1086 } 1087 1088 // ÐÑпÑавлÑем запÑÐ¾Ñ backend-Ñ 1089 sendRequest('/admin/structure/structure.php?ajax_structure=1&get_libs=1&lib_dir_id=' + ALibDirId + 1090 '&lib_id=' + ALibId, 'get', callbackfunction); 1091} 1092 1093function DoLoadXSL(AXslName, AXslDirId, APropertyId) 1094{ 1095 // ÐÑÐ¾Ñ ÐºÐ¾Ð´ вÑзовеÑÑÑ Ð°Ð²ÑомаÑиÑеÑки, когда загÑÑзка даннÑÑ Ð·Ð°Ð²ÐµÑÑиÑÑÑ. 1096 function callbackfunction(responseJS) 1097 { 1098 if (typeof responseJS != 'undefined') 1099 { 1100 var div = $("#id_xls_tamplate_" + APropertyId); 1101 div.empty(); 1102 div.html(responseJS.property_xsl_html); 1103 } 1104 } 1105 1106 // ÐÑпÑавлÑем запÑÐ¾Ñ backend-Ñ 1107 sendRequest('/admin/structure/structure.php?ajax_structure=1&get_xsl=' + HostcmsEscape(AXslName) +
1108 '&property_id=' + APropertyId + '&xsl_dir_id=' + AXslDirId, 'get', callbackfunction); 1109} 1110 1111function ChangeXslImageLink(lib_property_id, xsl_id, xsl_dir_id) 1112{ 1113 if (xsl_id > 0) 1114 { 1115 link_path = "/admin/xsl/xsl.php?admin_forms_id=22&operation=edit_xsl_dir&check_1_" + xsl_id+ "=1&xsl_dir_parent_id=" + xsl_dir_id; 1116 1117 document.getElementById('xsl_link_image_id_' + lib_property_id).setAttribute('href', link_path); 1118 document.getElementById('xsl_link_image_id_' + lib_property_id).style.display = ""; 1119 } 1120 else 1121 { 1122 document.getElementById('xsl_link_image_id_' + lib_property_id).setAttribute('href', 'javascript:void(0)'); 1123 document.getElementById('xsl_link_image_id_' + lib_property_id).style.display = "none"; 1124 } 1125} 1126 1127// СкÑÐ¸Ð¿Ñ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑпиÑка ÑвойÑÑв 1128function DoLoadLibProperties(ALibId, structure_id) 1129{ 1130 // ÐÑÐ¾Ñ ÐºÐ¾Ð´ вÑзовеÑÑÑ Ð°Ð²ÑомаÑиÑеÑки, когда загÑÑзка даннÑÑ Ð·Ð°Ð²ÐµÑÑиÑÑÑ. 1131 function callbackfunction(responseJS) 1132 { 1133 if (typeof responseJS != 'undefined') 1134 { 1135 // ÐÑводим ÑезÑлÑÑÐ°Ñ Ð² пеÑеменнÑÑ. 1136 html = responseJS.lib_properties_html; 1137 1138 if (responseJS.java_script != '') 1139 { 1140 eval(responseJS.java_script); 1141 } 1142 } 1143 else 1144 { 1145 html = ''; 1146 } 1147 1148 document.getElementById('lib_properties').innerHTML = html; 1149 } 1150 1151 // ÐÑпÑавлÑем запÑÐ¾Ñ backend-Ñ 1152 sendRequest('/admin/structure/structure.php?ajax_structure=1&get_lib_properties_id=' + ALibId + 1153 '&structure_id=' + structure_id, 'get', callbackfunction); 1154} 1155 1156// ----------------------------------------------------------------------------- 1157// / ÐодÑÐ»Ñ "СÑÑÑкÑÑÑа ÑайÑа" 1158// ----------------------------------------------------------------------------- 1159 1160function SetViewField(ASelectedItem) 1161{ 1162 var oPercent = document.getElementById("affiliate_values_percent_id"); 1163 var oValue = document.getElementById("affiliate_values_value_id"); 1164 1165 if (oPercent != 'undefined' && oValue != 'undefined') 1166 { 1167 oPercent.style.display = "none"; 1168 oValue.style.display = "none"; 1169 1170 switch (ASelectedItem) 1171 { 1172 case 0: // ÐÑоÑенÑ. 1173 { 1174 oPercent.style.display = ''; 1175 break; 1176 } 1177 case 1: // СÑмма. 1178 { 1179 oValue.style.display = ''; 1180 break; 1181 } 1182 } 1183 } 1184} 1185 1186//показ окна ÑедакÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ 1187function ShowEditWindow(caption, path, name) 1188{ 1189 var oWindowId = 'edit_window_'+name; 1190 1191 var oWindow = document.getElementById(oWindowId); 1192 1193 if (oWindow == undefined) 1194 { 1195 // Создаем окно 1196 CreateWindow(oWindowId, caption, '90%', '90%'); 1197 1198 var oWindow = document.getElementById(oWindowId); 1199 1200 // <div id="subdiv"> 1201 var ElementDiv = document.createElement("div"); 1202 ElementDiv.setAttribute("id", "subdiv"); 1203 var SubDiv = oWindow.appendChild(ElementDiv); 1204 1205 var DivMessage = document.createElement("div"); 1206 DivMessage.setAttribute("id", "id_message"); 1207 var oDivMessage = SubDiv.appendChild(DivMessage); 1208 1209 var DivContent = document.createElement("div"); 1210 DivContent.setAttribute("id", "id_content"); 1211 var oDivContent = SubDiv.appendChild(DivContent); 1212 1213 // ÐапÑÐ¾Ñ backend-Ñ 1214 var req = new JsHttpRequest(); 1215 1216 // ÐÑобÑажаем ÑкÑан загÑÑзки 1217 ShowLoadingScreen(); 1218 1219 req.onreadystatechange = function() 1220 { 1221 if (req.readyState == 4) 1222 { 1223 // УбиÑаем заÑемнение. 1224 HideLoadingScreen(); 1225 1226 if (req.responseJS != undefined) 1227 { 1228 // СообÑение. 1229 // ÐÑводим ÑезÑлÑÑÐ°Ñ Ð¾Ñибки в пеÑеменнÑÑ. 1230 if (typeof req.responseJS.error != 'undefined') 1231 { 1232 if (oDivMessage) 1233 { 1234 // Создадим ÑкÑÑÑÑй SPAN Ð´Ð»Ñ IE, в коÑоÑÑй помеÑÑим ÑекÑÑ + ÑкÑипÑ. 1235 // ÐÑли пеÑед <script> не бÑÐ´ÐµÑ ÑекÑÑа, Ð½ÐµÑ Ð¾ÑоÑий IE не ÑÐ²Ð¸Ð´Ð¸Ñ SCRIPT 1236 var span = document.createElement("span"); 1237 span.style.display = 'none'; 1238 span.innerHTML = "Stupid IE. " + req.responseJS.error; 1239 1240 runScripts(span.getElementsByTagName('SCRIPT'));
1241 1242 // ÐанеÑем ÑекÑÑ ÑообÑÐµÐ½Ð¸Ñ ÑолÑко поÑле вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑкÑипÑа 1243 oDivMessage.innerHTML = req.responseJS.error; 1244 } 1245 } 1246 1247 // ÐаннÑе запиÑÑваем ÑолÑко Ñогда, еÑли они еÑÑÑ Ð¸ не пÑÑÑÑе. 1248 if (typeof req.responseJS.form_html != 'undefined' && req.responseJS.form_html != '') 1249 { 1250 cmsrequest = path; 1251 1252 // УказÑваем ÑекÑÑий пÑÑÑ 1253 // ÐенÑем Location ÑолÑко пÑи DoLoadAjax, еÑли веÑнÑлиÑÑ Ð½Ð°Ð·Ð°Ð´ - не менÑем 1254 if (cmsrequest != '' 1255 && function_exists('getCmsUrl') 1256 && getCmsUrl() != cmsrequest) 1257 { 1258 setLocation(cmsrequest); 1259 } 1260 1261 if (function_exists('saveLocation')) 1262 { 1263 // Ð¡Ð¾Ñ ÑанÑем ÑекÑÑий пÑÑÑ Ð²Ñегда 1264 saveLocation(getCmsUrl()); 1265 } 1266 1267 // DisableTinyMCE(); 1268 1269 // ÐанеÑем ÑекÑÑ ÑообÑÐµÐ½Ð¸Ñ ÐРвÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑкÑипÑа 1270 oDivContent.innerHTML = req.responseJS.form_html; 1271 1272 // Создадим ÑкÑÑÑÑй SPAN Ð´Ð»Ñ IE, в коÑоÑÑй помеÑÑим ÑекÑÑ + ÑкÑипÑ. 1273 // ÐÑли пеÑед <script> не бÑÐ´ÐµÑ ÑекÑÑа, Ð½ÐµÑ Ð¾ÑоÑий IE не ÑÐ²Ð¸Ð´Ð¸Ñ SCRIPT 1274 var span = document.createElement("span"); 1275 span.style.display = 'none'; 1276 span.innerHTML = "Stupid IE. " + req.responseJS.form_html; 1277 1278 runScripts(span.getElementsByTagName('SCRIPT')); 1279 } 1280 } 1281 return true; 1282 } 1283 } 1284 1285 req.open('get', path, true); 1286 1287 // ÐÑÑÑлаем даннÑе в обÑабоÑÑик. 1288 req.send(null); 1289 } 1290 else 1291 { 1292 // ÐÑклÑÑаем ÑвÑÐ·Ñ Ñ ÑедакÑоÑами 1293 DisableTinyMCE(); 1294 oDivMessage = document.getElementById("id_message"); 1295 oDivMessage.innerHTML = ''; 1296 } 1297 1298 SlideWindow(oWindowId); 1299}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.