Current Path : /var/www/html/clients/amz.e-nk.ru/bitrix/components/bitrix/desktop/ |
Current File : /var/www/html/clients/amz.e-nk.ru/bitrix/components/bitrix/desktop/script.js |
if (!window.XMLHttpRequest) { var XMLHttpRequest = function() { try { return new ActiveXObject("MSXML3.XMLHTTP") } catch(e) {} try { return new ActiveXObject("MSXML2.XMLHTTP.3.0") } catch(e) {} try { return new ActiveXObject("MSXML2.XMLHTTP") } catch(e) {} try { return new ActiveXObject("Microsoft.XMLHTTP") } catch(e) {} } } var allGagdgetHolders = []; function getGadgetHolder(id) { return allGagdgetHolders[id]; } function BXGadget(gadgetHolderID, allGadgets) { var _this = this; _this.gadgetHolderID = gadgetHolderID; _this.allGadgets = allGadgets; allGagdgetHolders[_this.gadgetHolderID] = _this; _this.menuItems = []; for(var gr_id in arGDGroups) { var items = []; for(var _gid in arGDGroups[gr_id]['GADGETS']) { var gid = arGDGroups[gr_id]['GADGETS'][_gid]; for(var i in _this.allGadgets) { if(_this.allGadgets[i]['ID'].toUpperCase() == gid.toUpperCase()) { _this.allGadgets[i]['ONCLICK'] = "getGadgetHolder('"+_this.gadgetHolderID+"').Add('"+_this.allGadgets[i]['ID']+"')"; items[items.length] = _this.allGadgets[i]; break; } } } _this.menuItems[gr_id] = { 'ID': gr_id, 'TEXT': '<div style="text-align: left;"><b>' + arGDGroups[gr_id]['NAME'] + '</b><br>' + arGDGroups[gr_id]['DESCRIPTION']+'</div>', 'MENU': items }; } // Recalc gadgets positions _this.gdList = Array(); _this.gdCols = Array(); _this.__GDList = function() { _this.gdList = Array(); _this.gdCols = Array(); var GDHolder = document.getElementById("GDHolder_"+_this.gadgetHolderID).rows[0].cells; var childElements, l, el, i; for(i=0; i < GDHolder.length; i++) { if(GDHolder[i].id.substring(0, 1) == 's') { l = Array(); childElements = GDHolder[i].childNodes; for(el in childElements) { if(!childElements[el]) continue; if(childElements[el].tagName && childElements[el].tagName.toUpperCase() == 'TABLE' && childElements[el].id.substring(0, 1) == 't') { l[l.length] = childElements[el]; } } _this.gdList[_this.gdCols.length] = l; GDHolder[i].realPos =jsUtils.GetRealPos(GDHolder[i]); _this.gdCols[_this.gdCols.length] = GDHolder[i]; } } } // Drag'n'drop start _this.gdDrag = false; _this.mousePos = {x: 0, y: 0}; _this.zind = 0; _this.tmpDiv = false; _this.DragStart = function(n, e) { if(e) { if(e.srcElement && e.srcElement.tagName.toLowerCase() == 'a') return false; if(e.originalTarget && e.originalTarget.tagName.toLowerCase() == 'a') return false; } var antiselect = document.getElementById("antiselect"); if(antiselect) { antiselect.style.display = 'block'; var windowSize = jsUtils.GetWindowScrollSize(); antiselect.style.width = windowSize.scrollWidth + "px"; antiselect.style.height = windowSize.scrollHeight + "px"; antiselect.style.opacity = 0.01; antiselect.style.filter = 'gray() alpha(opacity=01)'; } _this.__GDList(); var t = document.getElementById('t'+n); var tablePos = jsUtils.GetRealPos(t); var d = document.getElementById('d'+n); d.style.display = 'block'; d.width = t.offsetWidth+'px'; d.style.height = t.offsetHeight+'px'; t.style.position = 'absolute'; t.style.width = d.offsetWidth+'px'; t.style.height = d.offsetHeight+'px'; t.style.left = tablePos["left"]+20+'px'; t.style.top = tablePos["top"]+'px'; t.style.border = '1px solid #777777'; _this.zind = t.style.zIndex; t.style.zIndex = '10000'; t.style.MozOpacity = 0.60; t.style.opacity = 0.60; t.style.filter = 'gray() alpha(opacity=60)'; _this.gdDrag = n; _this.tmpDiv = document.createElement("DIV"); _this.tmpDiv.style.display = "none"; _this.tmpDiv.innerHTML = ''; t.parentNode.insertBefore(_this.tmpDiv, t); document.body.appendChild(t); _this.mousePos.x = e.clientX + document.body.scrollLeft; _this.mousePos.y = e.clientY + document.body.scrollTop; return false; } // Drag'n'drop move _this.onMouseMove = function(e) { if(_this.gdDrag == false) return; var t = document.getElementById('t'+_this.gdDrag); var x = e.clientX + document.body.scrollLeft; var y = e.clientY + document.body.scrollTop; t.style.left = parseInt(t.style.left) + x - _this.mousePos.x + 'px'; t.style.top = parseInt(t.style.top) + y - _this.mousePos.y + 'px'; var rRealPos = jsUtils.GetRealPos(t), c, i, te, el = false, mm; var center = rRealPos.left + (rRealPos.right - rRealPos.left)/2, center2 = rRealPos.top + (rRealPos.bottom - rRealPos.top)/2; for(i=0; i<_this.gdCols.length; i++) { c = _this.gdCols[i].realPos; if(c.left <= center && c.right >= center) { //debugger; for(te in _this.gdList[i]) { if(_this.gdList[i][te].id == t.id) mm = jsUtils.GetRealPos(document.getElementById('d'+_this.gdDrag)); else mm = jsUtils.GetRealPos(_this.gdList[i][te]) if(center2 < mm.bottom) { el = _this.gdList[i][te]; _this.tmpDiv = document.createElement("DIV"); _this.tmpDiv.style.display = "none"; _this.tmpDiv.innerHTML = ''; if(_this.gdList[i][te].id == t.id) document.getElementById('d'+_this.gdDrag).parentNode.insertBefore(_this.tmpDiv, document.getElementById('d'+_this.gdDrag)); else el.parentNode.insertBefore(_this.tmpDiv, el); break; } } if(!el) el = 'last'; break; } } if(el) { var d = document.getElementById('d'+_this.gdDrag); d.parentNode.removeChild(d); if(el=='last') _this.gdCols[i].appendChild(d); else _this.tmpDiv.parentNode.insertBefore(d, _this.tmpDiv); } _this.mousePos.x = x; _this.mousePos.y = y; } // Drag'n'drop end _this.onMouseUp = function(e) { if(_this.gdDrag == false) return; var antiselect = document.getElementById("antiselect"); if(antiselect) { antiselect.style.display = 'none'; } var t = document.getElementById('t'+_this.gdDrag); t.style.MozOpacity = 1; t.style.opacity = 1; t.style.filter = ''; t.style.position = 'static'; t.style.border = '0px'; t.style.width = ''; t.style.height = ''; t.style.zIndex = _this.zind; var d = document.getElementById('d'+_this.gdDrag); d.style.display = 'none'; t.parentNode.removeChild(t); d.parentNode.insertBefore(t, d); _this.gdDrag = false; if(!_this.sendWait) { _this.sendWait = true; setTimeout("getGadgetHolder('"+_this.gadgetHolderID+"').SendUpdatedInfo();", 1000); } } // Create gadgets position string _this.GetPosString = function() { var GDHolder = document.getElementById("GDHolder_"+_this.gadgetHolderID).rows[0].cells; var childElements, el, i; var result = '', column=-1, row=0; for(i=0; i < GDHolder.length; i++) { if(GDHolder[i].id.substring(0, 1) == 's') { column++; row=0; childElements = GDHolder[i].childNodes; for(el in childElements) { if(!childElements[el]) continue; if(childElements[el].tagName && childElements[el].tagName.toUpperCase() == 'TABLE' && childElements[el].id.substring(0, 1) == 't') { result = result+'&POS['+column+']['+row+']='+encodeURIComponent(childElements[el].id.substring(1)) + (childElements[el].className.indexOf(" gdhided")>0?"*H":""); row++; } } } } return result; } ////////////// /// ////////////// _this.gdXmlHttpUpdate = new XMLHttpRequest(); _this.sendWait = false; _this.SendUpdatedInfo = function(param) { param = param || "update_position"; if (_this.gdXmlHttpUpdate.readyState % 4) { setTimeout("getGadgetHolder('"+_this.gadgetHolderID+"').SendUpdatedInfo('"+param+"');", 500); return; } _this.sendWait = false; _this.gdXmlHttpUpdate.open("POST", updateURL, true); _this.gdXmlHttpUpdate.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); _this.gdXmlHttpUpdate.onreadystatechange = function() { if(_this.gdXmlHttpUpdate.readyState == 4) { if(_this.gdXmlHttpUpdate.status == 200) { if(jsUtils.trim(_this.gdXmlHttpUpdate.responseText).length > 0) { } if(param == 'clear_settings') window.location = window.location; } else { alert(langGDError1); } } } _this.gdXmlHttpUpdate.send("sessid="+bxsessid+"&gd_ajax="+_this.gadgetHolderID+"&gd_ajax_action=" + param + _this.GetPosString()); } _this.ShowAddGDMenu = function(a) { _this.menu = new PopupMenu('gadgets_float_menu'); _this.menu.Create(110); if(_this.menu.IsVisible()) return; _this.menu.SetItems(_this.menuItems); _this.menu.BuildItems(); var pos = jsUtils.GetRealPos(a); pos["bottom"]+=1; _this.menu.PopupShow(pos); } _this.Add = function(id) { var frm = document.getElementById("GDHolderForm_" + _this.gadgetHolderID); frm["gid"].value = id; frm["action"].value = "add"; frm.submit(); } _this.UpdSettings = function(id) { var frm = document.getElementById("GDHolderForm_" + _this.gadgetHolderID); frm["gid"].value = id; frm["action"].value = "update"; function __AddField(elmName, elmValue) { var elm = document.createElement("INPUT"); elm.type = "hidden"; elm.name = "settings["+elmName+"]"; elm.value = elmValue; frm.appendChild(elm); } var dSet = document.getElementById("dset"+id); var el, res = ''; for(var i=0; i<dSet._inputs.length; i++) { el = document.getElementById(id + '_' + dSet._inputs[i]); if(el) { if(el.tagName.toUpperCase()=='INPUT' && el.type.toUpperCase()=='CHECKBOX') __AddField(dSet._inputs[i], (el.checked ? 'Y' : 'N')); else __AddField(dSet._inputs[i] , el.value); } } frm.submit(); } _this.SetForAll = function() { langGDConfirm = langGDConfirm1; if (arguments[0]) { if (arguments[0] == 'SU') langGDConfirm = langGDConfirmUser; if (arguments[0] == 'SG') langGDConfirm = langGDConfirmGroup; } if(!confirm(langGDConfirm)) return; _this.SendUpdatedInfo('save_default'); } _this.ClearUserSettings = function() { _this.SendUpdatedInfo('clear_settings'); } _this.ClearUserSettingsConfirm = function() { if(!confirm(langGDClearConfirm)) return; _this.SendUpdatedInfo('clear_settings'); } _this.Delete = function(id) { var t = document.getElementById('t'+id); if(t) t.parentNode.removeChild(t); var d = document.getElementById('d'+id); if(d) d.parentNode.removeChild(d); if(!_this.sendWait) { _this.sendWait = true; setTimeout("getGadgetHolder('"+_this.gadgetHolderID+"').SendUpdatedInfo();", 500); } return false; } _this.Hide = function(id, ob) { var t = document.getElementById('t'+id); if(!t) return; if(t.className.indexOf(" gdhided")>0) t.className = 'data-table-gadget'; else t.className = 'data-table-gadget gdhided'; if(!_this.sendWait) { _this.sendWait = true; setTimeout("getGadgetHolder('"+_this.gadgetHolderID+"').SendUpdatedInfo();", 500); } return false; } _this.gdXmlHttpSett = new XMLHttpRequest(); _this.ShowSettings = function(id, t) { var dS = document.getElementById("dset"+id); if(dS.style.display != 'none') { dS.style.display = 'none'; return; } if(_this.gdXmlHttpSett.readyState % 4) return; t = t || 'get_settings'; _this.gdXmlHttpSett.open("POST", updateURL, true); _this.gdXmlHttpSett.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); _this.gdXmlHttpSett.onreadystatechange = function() { if(_this.gdXmlHttpSett.readyState == 4) { if(_this.gdXmlHttpSett.status == 200) { if(jsUtils.trim(_this.gdXmlHttpSett.responseText).length > 0) { var before = new Date().getTime(); var dSet = document.getElementById("dset"+id); dSet.innerHTML = ''; dSet._inputs = []; try { eval('var gdObject = '+_this.gdXmlHttpSett.responseText); } catch (e) { alert(_this.gdXmlHttpSett.responseText); return; } var param, param_id; var oEl; for(param_id in gdObject) { param = gdObject[param_id]; var str = ''; var input_id = id + '_' + param_id; param["TYPE"] = param["TYPE"] || 'STRING'; if(!param["VALUE"] && param["DEFAULT"]!='undefined') param["VALUE"] = param["DEFAULT"]; if(param["TYPE"]=="STRING") { str = param["NAME"] + ':<br><input type="text" id="' + input_id + '" size="40" value="'+param["VALUE"]+'"><br>'; } else if(param["TYPE"]=="LIST") { var aR = []; for(var vid in param["VALUES"]) { aR.push('<option value="'+vid+'" '+(param["VALUE"]==vid?' selected':'')+'>'+param["VALUES"][vid]+'</option>'); //str = str + '<option value="'+vid+'" '+(param["VALUE"]==vid?' selected':'')+'>'+param["VALUES"][vid]+'</option>'; } str = param["NAME"] + ':<br><select style="width:100%" id="' + input_id + '" >' + aR.join("") + '</select>'; } else if(param["TYPE"]=="CHECKBOX") { str = param["NAME"]+': <input type="checkbox" id="' + input_id + '" value="Y" '+(param["VALUE"]=='Y'?' checked':'')+'><br>'; } oEl = document.createElement("DIV"); oEl.className = "gdsettrow"; oEl.innerHTML = str; dSet.appendChild(oEl); dSet._inputs[dSet._inputs.length] = param_id; } oEl = document.createElement("DIV"); oEl.className = "gdsettrow"; oEl.innerHTML = '<input type="button" value="OK" onclick="getGadgetHolder(\''+_this.gadgetHolderID+'\').UpdSettings(\''+id+'\');"> <input type="button" value="'+langGDCancel+'" onclick="getGadgetHolder(\''+_this.gadgetHolderID+'\').CloseSettingsForm(\''+id+'\');">'; dSet.appendChild(oEl); dSet.style.display = 'block'; } } else { alert(langGDError2); } } } _this.gdXmlHttpSett.send("sessid="+bxsessid+"&gd_ajax="+_this.gadgetHolderID+"&gid="+id+"&gd_ajax_action="+t); return false; } _this.CloseSettingsForm = function(id) { var dSet = document.getElementById("dset"+id); dSet.style.display = 'none'; } jsUtils.addEvent(document.body, "mousemove", _this.onMouseMove); jsUtils.addEvent(document.body, "mouseup", _this.onMouseUp); }