function getElement(sID) { return document.getElementById(sID); } var isIE = document.all ? true : false; var isOpera = navigator.userAgent.toLowerCase().indexOf('opera') != -1; var isChrome = /chrome/.test(navigator.userAgent.toLowerCase()); var isIE11 = !!navigator.userAgent.match(/Trident\/7\./); var ieVer = (function () { var undef, v = 3, div = document.createElement('div'), all = div.getElementsByTagName('i'); while ( div.innerHTML = '', all[0] ); return v > 4 ? v : undef; }()); function LoadJS(filename) { LoadResourceFile(filename, "js"); } function LoadCSS(filename) { LoadResourceFile(filename, "css"); } function LoadResourceFile(filename, filetype) { if (filetype == "js") { //if filename is a external JavaScript file var fileref = document.createElement('script') fileref.setAttribute("type", "text/javascript") fileref.setAttribute("src", filename) } else if (filetype == "css") { //if filename is an external CSS file var fileref = document.createElement("link") fileref.setAttribute("rel", "stylesheet") fileref.setAttribute("type", "text/css") fileref.setAttribute("href", filename) } if (typeof fileref != "undefined") document.getElementsByTagName("head")[0].appendChild(fileref) } function isUrl(s) { var sUrlParts = s.split('?'); var regexp = new RegExp(); var regexp2 = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/ var regexp3 = /(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/ regexp.compile("^[A-Za-z,]+://[A-Za-z0-9-_,]+\\.[A-Za-z0-9-_%&\?\/.=,]+$"); if (sUrlParts.length == 1) return (regexp.test(sUrlParts[0]) && regexp2.test(sUrlParts[0])) return (regexp3.test(sUrlParts[0]) && regexp3.test(sUrlParts[1])) } function getLocalizedAppDir() { var sLang = (typeof (BaseMaster_sLanguageCode) == "undefined" ? "he" : BaseMaster_sLanguageCode.toLowerCase()); var sLocal = (sLang == 'he' ? '/KotarApp' : '/KotarApp/Loc/' + BaseMaster_sLanguageCode) return sLocal; } function isRTL() { var sLang = (typeof (BaseMaster_sLanguageCode) == "undefined" ? "he" : BaseMaster_sLanguageCode.toLowerCase()); return (sLang == 'he' || sLang == 'ar' ? true : false) } var nHideAjaxMessageBoxTimeout = 0; var oAjaxMessageContent = null; var oAjaxMessageContainer = null; var oAjaxMessageContainerBG = null; var oAjaxMessageBox = null; var bAjaxMessageIsImportant = false; var nAjaxMessageWidth = 0; var nAjaxMessageCustomContainerLeft = 0; var nAjaxMessageCustomContainerWidth = 0; var nAjaxMessageCustomContainerTop = 0; function SetAjaxAjaxMessageCustomContainerLeft(nLeft) { nAjaxMessageCustomContainerLeft = nLeft; } function SetAjaxAjaxMessageCustomContainerWidth(nWidth) { nAjaxMessageCustomContainerWidth = nWidth; } function SetAjaxAjaxMessageCustomContainerTop(nTop) { nAjaxMessageCustomContainerTop = nTop; } function ShowAjaxImportantMessageBox(sMessage, nTimeout) { if (typeof (nTimeout) == "undefined") nTimeout = 3000; bAjaxMessageIsImportant = true; ShowAjaxMessage(sMessage, nTimeout); } function ShowAjaxNotification(sMessage, nTimeout) { if (typeof (nTimeout) == "undefined") nTimeout = 2000; bAjaxMessageIsImportant = true; ShowAjaxMessage(sMessage, nTimeout); } function ShowAjaxMessageBox(sMessage, nTimeout) { if (bAjaxMessageIsImportant == true) return; if (typeof (nTimeout) == "undefined") nTimeout = 1200; ShowAjaxMessage(sMessage, nTimeout); } function ShowAjaxMessage(sMessage, nTimeout) { VerifyAjaxMessageBoxControls(); sMessage = SetAjaxMessageBoxDimensions(sMessage); oAjaxMessageContent.innerHTML = sMessage; SetAjaxMessageBoxVisibility(true); window.clearTimeout(nHideAjaxMessageBoxTimeout); nHideAjaxMessageBoxTimeout = window.setTimeout("HideAjaxMessageBox()", nTimeout); } function VerifyAjaxMessageBoxControls() { if (oAjaxMessageContent == null) { oAjaxMessageContent = document.getElementById("ajaxMessageContent"); oAjaxMessageContainer = document.getElementById("ajaxMessageContainer"); oAjaxMessageContainerBG = document.getElementById("ajaxMessageContainerBG"); oAjaxMessageBox = document.getElementById("ajaxMessageBox"); CalcClientSize(); } } function HideAjaxMessageBox() { bAjaxMessageIsImportant = false; SetAjaxMessageBoxVisibility(false); } function SetAjaxMessageBoxDimensions(sMessage) { sMessage = ReplaceAll(sMessage, "[A]", "'"); var nLen = sMessage.length; //alert(nLen); if (nLen < 15) SetAjaxMessageBoxWidth(170); else if (nLen < 20) SetAjaxMessageBoxWidth(210); else if (nLen < 30) SetAjaxMessageBoxWidth(300); else if (nLen < 35) SetAjaxMessageBoxWidth(330); else if (nLen < 40) SetAjaxMessageBoxWidth(370); else if (nLen < 45) SetAjaxMessageBoxWidth(390); else if (nLen < 50) SetAjaxMessageBoxWidth(420); else if (nLen < 55) SetAjaxMessageBoxWidth(500); else if (nLen < 60) SetAjaxMessageBoxWidth(540); else if (nLen < 65) SetAjaxMessageBoxWidth(550); else { SetAjaxMessageBoxWidth(590); sMessage = sMessage.substr(0, 65) + "..."; } return sMessage; } function SetAjaxMessageBoxWidth(nWidth) { nAjaxMessageWidth = nWidth; oAjaxMessageContainer.style.width = nWidth + "px"; oAjaxMessageContainerBG.style.width = (nWidth - 2) + "px";//(nWidth - (isIE ? 2 : 2)) + "px"; oAjaxMessageBox.style.width = nWidth + "px"; } function SetAjaxMessageBoxVisibility(bVisible) { var nTop = (nAjaxMessageCustomContainerTop > 0 ? nAjaxMessageCustomContainerTop : 150); var nContainerWidth = (nAjaxMessageCustomContainerWidth > 0 ? nAjaxMessageCustomContainerWidth : clientDimensions.width); var nLeft = (nContainerWidth - nAjaxMessageWidth) / 2 + nAjaxMessageCustomContainerLeft; oAjaxMessageContainer.style.left = nLeft + "px"; oAjaxMessageContainer.style.top = nTop + "px"; oAjaxMessageBox.style.left = nLeft + "px"; oAjaxMessageBox.style.top = nTop + "px"; oAjaxMessageContainer.style.display = (bVisible ? "block" : "none"); oAjaxMessageBox.style.display = (bVisible ? "block" : "none"); oAjaxMessageBox.style.direction = BV_BookDirection; } function ShowCetLinks() { if (ModalPopupIsVisible()) return; if (nCetLinks_Timer > 0) window.clearTimeout(nCetLinks_Timer); var hCetLinks = getElement("hCetLinks"); hCetLinks.style.borderBottom = "solid 1px white"; var dvCetLinks = getElement("dvCetLinks"); dvCetLinks.style.display = ""; dvCetLinks.style.zIndex = 2; } var nCetLinks_Timer = 0; function HideCetLinks() { if (nCetLinks_Timer > 0) window.clearTimeout(nCetLinks_Timer); nCetLinks_Timer = window.setTimeout("CetLinks_OnTimeout()", 500); } function CetLinks_OnTimeout() { getElement("hCetLinks").style.borderBottom = "none"; getElement("dvCetLinks").style.display = "none"; } var PopupDimensions = [ { name: "Login", width: 550, height: 290 }, { name: "LoginWithAutoLine", width: 550, height: 324 }, { name: "LoginFromIPSubscriptionTerminal", width: 550, height: 400 }, { name: "PasswordRecovery", width: 496, height: 400 }, { name: "AdditionalInfo", width: 580, height: 412 }, { name: "WhyRegister", width: 580, height: 420 }, { name: "ExpireNotice", width: 496, height: 350 }, { name: "SiteSubscriptionInMonthlyMode", width: 496, height: 250 }, { name: "SiteSubscriptionStillActive", width: 496, height: 250 }, { name: "ActiveProductsInCartWarning", width: 496, height: 250 }, { name: "SiteSubscriptionActiveByProxy", width: 496, height: 250 }, { name: "AddBookToProject", width: 560, height: 240 }, { name: "AddBookToCart", width: 320, height: 250 }, { name: "UserHasNoBooks", width: 550, height: 500 }, { name: "WelcomeToFreeSite", width: 550, height: 420 }, { name: "WelcomeToCartSite", width: 550, height: 420 }, { name: "WelcomeToSubscriptionSite", width: 550, height: 420 }, { name: "UserHasNoSubscription", width: 550, height: 300 }, { name: "MessageBox", width: 350, height: 190 }, { name: "SyncBox", width: 350, height: 150 }, { name: "AddLink", width: 420, height: 177 }, { name: "CopyToClipboard", width: 410, height: 207 }, { name: "IAmTheWalrus", width: 700, height: 500 }, { name: "GoToCheckout", width: 350, height: 152 }, { name: "ClipboardInaccessible", width: 350, height: 150 }, { name: "ManualCopyToClipboard", width: 350, height: 250 }, { name: "ViewerHelp", width: 400, height: 350 }, { name: "UploadAvatar", width: 400, height: 150 }, { name: "PendingMembershipApproval", width: 400, height: 150 }, { name: "SiteMembershipIsRequired", width: 400, height: 150 }, { name: "ExplainPrivate", width: 400, height: 150 }, { name: "ExplainPublic", width: 400, height: 150 }, { name: "TechnicalRequirements", width: 500, height: 500 } ]; function ShowPrivateNoteExplanationPopup() { ShowNoteExplanationPopup("Private"); } function ShowPublicNoteExplanationPopup() { ShowNoteExplanationPopup("Public"); } function ShowNoteExplanationPopup(sType) { ChangeIFrameSource("/KotarApp/Viewer/Popups/Markers/Explain" + sType + ".aspx?", false); BV_SmartHideMarkerBubble('', false); ShowModalPopup("Explain" + sType); } function ShowPendingMembershipApprovalPopup(bFromViewer) { ChangeIFrameSource(MainMaster_AccountPopupsFolder + "PendingMembershipApproval.aspx?bFromViewer=" + bFromViewer, false); if (bFromViewer) BV_SmartHideMarkerBubble('', false); ShowModalPopup("PendingMembershipApproval"); } function ShowSiteMembershipIsRequiredPopup(bFromViewer) { ChangeIFrameSource(MainMaster_AccountPopupsFolder + "SiteMembershipIsRequired.aspx?bFromViewer=" + bFromViewer, false); if (bFromViewer) BV_SmartHideMarkerBubble('', false); ShowModalPopup("SiteMembershipIsRequired"); } function ShowUploadAvatar() { ChangeIFrameSource("/Account/Popups/UploadAvatar.aspx", false) ShowModalPopup("UploadAvatar"); } function ShowTTS() { var nPageNum = BV_nTopPageInView; gPageToken = BookPageState_GetPageGuid(nPageNum); sPageLabel = BookPageState_GetPageLabel(nPageNum); var url = "/KotarApp/Viewer/Popups/TTS.aspx?nBookID=" + BV_nBookID + "&gPageToken=" + gPageToken + "&sPageLabel=" + sPageLabel; var iframewidth = "870px"; if ($(window).width() <= 768) { url += "&Width=550"; iframewidth = "592px"; } $.colorbox({ href: url, iframe: true, open: true, height: "600px", width: iframewidth, title: "" }); $('#colorbox').show(); } function ShowViewerHelp() { ChangeIFrameSource(getLocalizedAppDir() + "/Viewer/Popups/Help.aspx", false) ShowModalPopup("ViewerHelp"); } function SetLoginIFrameURL(sLoginWindow, sUrl) { ChangeIFrameSource(sLoginWindow + "?bPopup=true&sReturnUrl=" + sUrl, false); } function SetLoginIFrameURLForIncompleteRegistration(sLoginWindow) { ChangeIFrameSource(sLoginWindow + "?bClear=true&bSubscriptionExpired=true", false); } function CloseWarningPopupAndShowAddBookToCartPopup(nBookID) { HideModalPopup(); var params = new Array({ name: "nBookID", value: nBookID }); callAppKotarCommand("Products.AddToCart", params, { onSuccessFunction: ShowAddBookToCartPopup, onFailureFunction: ShowFailedToAddBookToCartPopup, nBookID: nBookID }, false); } function ShowClipboardInaccessible() { ChangeIFrameSource("/KotarApp/Viewer/Popups/ClipboardInaccessible.aspx", false) ShowModalPopup("ClipboardInaccessible"); } function ShowManualCopyToClipboardPopup() { var oWin = ChangeIFrameSource("/KotarApp/Viewer/Popups/ManualCopyToClipboard.aspx", false) ShowModalPopup("ManualCopyToClipboard"); return oWin; } function ShowGotoCheckout_OnLoad() { AddOpenWindowCommand("ShowGotoCheckout()"); } function ShowGotoCheckout() { ChangeIFrameSource("/KotarApp/Shop/Popups/GoToCheckout.aspx", false) ShowModalPopup("GoToCheckout"); } function TransactionFailedMessage() { ChangeIFrameSource("/KotarApp/Shop/Popups/TransactionFailedMessage.aspx", true) ShowModalPopup("TransactionFailedMessage"); } function ShowCuponMessage() { ChangeIFrameSource("/KotarApp/Shop/Popups/ShowCuponMessage.aspx", false) ShowModalPopup("ShowCuponMessage"); } function ShowIAmTheWalrusPopup(nBookID) { ChangeIFrameSource("/KotarApp/Account/Popups/IAmTheWalrus.aspx?nBookID=" + nBookID, false) ShowModalPopup("IAmTheWalrus"); } function ShowFailedToAddBookToCartPopup() { Utils_ShowMessageDialog("קרתה תקלה בהוספת הספר לעגלת הקניות", "תקלת מערכת", false); } function ShowAddBookToCartPopup(nBookID, sReturnUrl) { if (typeof (sReturnUrl) == "undefined") sReturnUrl = ""; ChangeIFrameSource("/KotarApp/Shop/Popups/AddBookToCart.aspx?nBookID=" + nBookID + "&sReturnUrl=" + sReturnUrl, false) ShowModalPopup("AddBookToCart"); } function ShowAddLinkPopup() { ChangeIFrameSource("/KotarApp/Viewer/Popups/AddLink.aspx", false) ShowModalPopup("AddLink"); } function ShowCopyToClipboardPopup(nBookID) { ChangeIFrameSource("/KotarApp/Viewer/Popups/CopyToClipboard.aspx?nBookID=" + nBookID, false) ShowModalPopup("CopyToClipboard"); } function ShowWelcomePopup_OnLoad(sType) { AddOpenWindowCommand("ShowWelcomePopup('" + sType + "')"); } function ShowWelcomePopup(sType) { ChangeIFrameSource(MainMaster_AccountPopupsFolder + "WelcomeTo" + sType + "Site.aspx", false) ShowModalPopup("WelcomeTo" + sType + "Site"); } function ShowUserHasNoSubscriptionPopup_OnLoad() { AddOpenWindowCommand("ShowUserHasNoSubscriptionPopup()"); } function ShowUserHasNoSubscriptionPopup() { ChangeIFrameSource("/KotarApp/Account/Popups/UserHasNoSubscription.aspx", true) ShowModalPopup("UserHasNoSubscription"); } function ShowUserHasNoBooksPopup_OnLoad() { AddOpenWindowCommand("ShowUserHasNoBooksPopup()"); } function ShowUserHasNoBooksPopup() { ChangeIFrameSource("/KotarApp/Account/Popups/UserHasNoBooks.aspx", true) ShowModalPopup("UserHasNoBooks"); } function ShowMailPopup(sUrl) { ChangeIFrameSource("/KotarApp/Viewer/Popups/SendMail.aspx?" + sUrl, false) ShowModalPopup("SendMail"); //in Homepage the BV_SmartHideMarkerBubble function is yet not loaded,only in the viewer. if (typeof (BV_SmartHideMarkerBubble) != "undefined") { BV_SmartHideMarkerBubble('', false); } } function ShowPrintPopup(sUrl) { ChangeIFrameSource("/KotarApp/Viewer/Popups/Print.aspx?" + sUrl, false) ShowModalPopup("Print"); } function ShowLoginPopup(bSetUrl, sCallbackFunction, bAuto) { if (typeof (BaseMaster_bUserIsLoggedIn) != "undefined" && BaseMaster_bUserIsLoggedIn) return; if (typeof (bAuto) == "undefined") bAuto = false; var sPopup = (bAuto ? "LoginWithAutoLine" : "Login"); var sURL = MainMaster_AccountPopupsFolder + "Login.aspx"; if (typeof (BaseMaster_bIsClientInIpSubscriptionRange) != "undefined" && BaseMaster_bIsClientInIpSubscriptionRange == true) { sPopup = "LoginFromIPSubscriptionTerminal"; sURL = MainMaster_AccountPopupsFolder + "LoginFromIPSubscriptionTerminal.aspx"; } if (bSetUrl == true) { var params = (typeof (sCallbackFunction) != "undefined" ? "bAuto=" + bAuto + "&bSmartLogin=true&sCallback=" + sCallbackFunction : "bPopup=true") + "&tmp=" + getTimestamp(); ChangeIFrameSource(sURL + "?" + params, false); } if (IsInViewer()) BV_SmartHideMarkerBubble('ShowLoginPopup', false); ShowModalPopup(sPopup); } function ShowAdditionalInfoPopup() { ChangeIFrameSource("/KotarApp/Account/Popups/AdditionalInfo.aspx", false) ShowModalPopup("AdditionalInfo"); } function ShowWhyRegisterPopup() { ChangeIFrameSource(MainMaster_AccountPopupsFolder + "WhyRegister.aspx", false); ShowModalPopup("WhyRegister"); } function ShowPasswordRecoveryPopup() { HideModalPopup(); ChangeIFrameSource("/KotarApp/Account/Popups/PasswordRecovery.aspx", false); ShowModalPopup("PasswordRecovery"); } function ShowHasActiveProductsInCartWarningPopup() { ChangeIFrameSource("/KotarApp/Account/Popups/ActiveProductsInCartWarning.aspx", false); ShowModalPopup("ActiveProductsInCartWarning"); } function ShowSiteSubscriptionInMonthlyModeWarningPopup_OnLoad() { AddOpenWindowCommand("ShowSiteSubscriptionInMonthlyModeWarningPopup()"); } function ShowSiteSubscriptionInMonthlyModeWarningPopup() { ChangeIFrameSource("/KotarApp/Account/Popups/SiteSubscriptionInMonthlyModeWarning.aspx", false); ShowModalPopup("SiteSubscriptionInMonthlyMode"); } function ConfirmTransferProducts() { ChangeIFrameSource("/KotarApp/Account/Popups/ConfirmTransferProducts.aspx", false); ShowModalPopup("ConfirmTransferProducts"); } function TransferProductsMessage() { ChangeIFrameSource("/KotarApp/Account/Popups/TransferProductsMessage.aspx", false); ShowModalPopup("ConfirmTransferProducts"); } function ShowSiteSubscriptionStillActiveWarningPopup_OnLoad() { AddOpenWindowCommand("ShowSiteSubscriptionStillActiveWarningPopup()"); } function ShowSiteSubscriptionStillActiveWarningPopup() { ChangeIFrameSource("/KotarApp/Account/Popups/SiteSubscriptionStillActiveWarning.aspx", false); ShowModalPopup("SiteSubscriptionStillActive"); } function ShowSiteSubscriptionActiveByProxyWarningPopup() { ChangeIFrameSource("/KotarApp/Account/Popups/SiteSubscriptionActiveByProxyWarning.aspx", false); ShowModalPopup("SiteSubscriptionActiveByProxy"); } function ShowSiteSubscriptionAboutToExpirePopup_OnLoad() { AddOpenWindowCommand("ShowSiteSubscriptionAboutToExpirePopup()"); } function ShowSiteSubscriptionAboutToExpirePopup() { ChangeIFrameSource("/KotarApp/Account/Popups/SiteSubscriptionExpiresSoon.aspx", false); ShowModalPopup("ExpireNotice"); } function ShowBookSubscriptionAboutToExpirePopup_OnLoad(nBookID) { AddOpenWindowCommand("ShowBookSubscriptionAboutToExpirePopup(" + nBookID + ")"); } function ShowBookSubscriptionAboutToExpirePopup(nBookID) { ChangeIFrameSource("/KotarApp/Account/Popups/BookSubscriptionExpiresSoon.aspx?nBookID=" + nBookID, false); ShowModalPopup("ExpireNotice"); } function ShowExpireNoticePopup() { ChangeIFrameSource("/KotarApp/Account/Popups/ExpireNotice.aspx", false); ShowModalPopup("ExpireNotice"); } function ShowSyncBoxPopup() { ChangeIFrameSource("/KotarApp/BackOffice/SyncBox.htm", false); ShowModalPopup("SyncBox"); } function ShowCuponExplainPopup() { var oWin = ChangeIFrameSource("/KotarApp/Shop/Popups/CuponExplain.aspx", false) ShowModalPopup("CuponExplainPopup"); return oWin; } function ShowAddToCartExplainPopup(Type) { var oWin = ChangeIFrameSource("/KotarApp/Shop/Popups/AddToCartExplain.aspx?type=" + Type, false) ShowModalPopup("ShowAddToCartExplainPopup"); return oWin; } function Open_AddBookToProjectPopup(nBookID, bRefreshProjectList, bRefreshPage, nPageID) { if (typeof (nPageID) == "undefined") nPageID = 0; ChangeIFrameSource("/KotarApp/Projects/Popups/AddBookToProject.aspx?nBookID=" + nBookID + "&nPageID=" + nPageID + "&bRefreshProjectList=" + bRefreshProjectList + "&bRefreshPage=" + bRefreshPage, false); ShowModalPopup("AddBookToProject"); } function Utils_ShowErrorMessageDialog(sMessage, sUrl, sHrefText) { Utils_ShowMessageDialog(sMessage, "שגיאת מערכת", true, sUrl, sHrefText); } function Utils_ShowDelayedMessageDialog(sMessage, sTitle, bError, nDelay) { window.setTimeout("Utils_ShowMessageDialog('" + sMessage + "', '" + sTitle + "', " + bError + ", '')", nDelay); } function Utils_ShowMessageDialog(sMessage, sTitle, bError, sUrl, sHrefText, bShowWait) { if (typeof (sTitle) == "undefined") sTitle = "שימו לב"; if (typeof (sUrl) == "undefined") sUrl = ""; if (typeof (sHrefText) == "undefined") sHrefText = ""; if (typeof (bShowWait) == "undefined") bShowWait = false; if (typeof (bError) == "undefined") bError = false; ChangeIFrameSource("/KotarApp/System/MessageBox.aspx?sTitle=" + escape(sTitle) + "&sMessage=" + escape(sMessage) + "&bError=" + bError + "&sUrl=" + sUrl + "&sHrefText=" + escape(sHrefText) + "&bShowWait=" + bShowWait , false); ShowModalPopup("MessageBox"); } var _openedWindowName = ""; var _reopenWindowName = ""; var _lastIFrameSource = ""; function ChangeIFrameSource(newLocation, bAddTimestamp) { if (typeof (bAddTimestamp) == "undefined") bAddTimestamp = false; if (_openedWindowName == "") _lastIFrameSource = newLocation; var oFrame = document.getElementById("modalDialogIFrame"); if (oFrame == null) { Utils_ShowErrorMessageDialog("בעייה בפתיחת החלונית"); return; } var gUserID = (typeof (BaseMaster_gUserID) == "undefined" ? '00000000-0000-0000-0000-000000000000' : BaseMaster_gUserID); newLocation += (newLocation.indexOf("?") > 0 ? "&" : "?") + "bShowResourceFieldName=" + bShowResourceFieldName + "&gUserID=" + gUserID + (bAddTimestamp ? "&tmp=" + getTimestamp() : ""); if (isIE) { var w = document.getElementById("modalDialogIFrame") w.contentWindow.location.replace(newLocation); return w; } else { oFrame.src = newLocation; return oFrame; } } function SetPleaseWaitIFrame() { var waitUrl = "/KotarApp/System/MessageBox.aspx?bShowLoading=true&sLang=" + BaseMaster_sLanguageCode; if (isIE) { var w = document.getElementById("modalDialogIFrame") w.contentWindow.location.replace(waitUrl); } else { var oFrame = document.getElementById("modalDialogIFrame"); oFrame.src = waitUrl; } } var _overflow = ""; var bModalPopupIsVisible = false; function ModalPopupIsVisible() { return bModalPopupIsVisible; } var modalPopupListners = new Array(); function AddModalPopupListner(open, close) { modalPopupListners[modalPopupListners.length] = [open, close]; } function ExecModalPopup(bOpen) { for (var l = 0; l < modalPopupListners.length; l++) if (bOpen) eval(modalPopupListners[l][0]); else eval(modalPopupListners[l][1]); } function ShowModalPopup(sPopupName) { if (_openedWindowName == sPopupName) return; if (getElement('dvFlashWrapper') != null) getElement('dvFlashWrapper').style.visibility = "hidden"; if (getElement('FlashDivdvFlash') != null) getElement('FlashDivdvFlash').style.visibility = "hidden"; if (_openedWindowName != "") _reopenWindowName = _openedWindowName; else _reopenWindowName = ""; bModalPopupIsVisible = true; SetBodyOverlayState(true); _openedWindowName = sPopupName; SetPopupDimensions(); } var HideModalPopupCallback = null; function HideModalPopup() { if (HideModalPopupCallback != null) { eval(HideModalPopupCallback); HideModalPopupCallback = null; } if (getElement('dvFlashWrapper') != null) getElement('dvFlashWrapper').style.visibility = ""; if (getElement('FlashDivdvFlash') != null) getElement('FlashDivdvFlash').style.visibility = ""; var now = new Date(); _openedWindowName = ""; if (_reopenWindowName == "") { SetPleaseWaitIFrame(); SetBodyOverlayState(false); bModalPopupIsVisible = false; } else { ChangeIFrameSource(_lastIFrameSource); ShowModalPopup(_reopenWindowName); } if (IsInViewer()) { document.body.scrollTop = 0; window.focus(); BV_SmartShowMarkerBubble(false); } } function SetBodyOverlayState(bIsVisible) { ExecModalPopup(bIsVisible); getElement("dvModalDialogBackground").style.display = (bIsVisible ? "block" : "none"); if (isIE) { SetElementOverlayState("tblContentContainer", bIsVisible); SetElementOverlayState("tblHomePage", bIsVisible); SetElementOverlayState("BV_oBook", bIsVisible); } if (getElement('dvFlashWrapper') != null) getElement('dvFlashWrapper').style.display = (bIsVisible ? "none" : "block"); if (bIsVisible) { _overflow = document.body.style.overflow; document.body.style.overflow = "hidden"; } else document.body.style.overflow = _overflow; } function SetElementOverlayState(sID, bIsVisible) { var oElement = getElement(sID); if (oElement == null) return; if (bIsVisible) oElement.style.filter = "alpha(opacity=40)"; else oElement.style.removeAttribute('filter'); } function IsInViewer() { var sUrl = window.location.href.replace('http://', '').toLowerCase(); return (sUrl.indexOf('/viewer.aspx') > 0) || (sUrl.indexOf('/bareboneviewer.aspx') > 0); } function SetPopupDimensions() { var nWidth = 0, nHeight = 0; for (var p = 0; p < PopupDimensions.length && nWidth == 0; p++) { if (PopupDimensions[p].name.toLowerCase() == _openedWindowName.toLowerCase()) { nWidth = PopupDimensions[p].width; nHeight = PopupDimensions[p].height; } } if (nWidth > 0 && nHeight > 0) { AdjustModalPopupHeight(nWidth, nHeight); } } function AdjustModalPopupToTrueDimensions(nWidth, nHeight) { for (var p = 0; p < PopupDimensions.length; p++) { if (PopupDimensions[p].name.toLowerCase() == _openedWindowName.toLowerCase()) { PopupDimensions[p].width = nWidth; PopupDimensions[p].height = nHeight; } } AdjustModalPopupHeight(nWidth, nHeight); } function AdjustModalPopupHeight(nWidth, nHeight) { var dvModalDialogIFrameContainer = getElement("dvModalDialogIFrameContainer"); var iFrame = getElement("modalDialogIFrame"); var pleaseWaitIFrame = getElement("pleaseWaitIFrame"); dvModalDialogIFrameContainer.style.width = nWidth + "px"; dvModalDialogIFrameContainer.style.height = nHeight + "px"; iFrame.style.width = nWidth + "px"; iFrame.style.height = nHeight + "px"; if (clientDimensions == null) CalcClientSize(); var dvModalDialogBackground = getElement("dvModalDialogBackground"); var nTop = (clientDimensions.height - nHeight) / 2; if (nTop < 0) { nTop = 0; } nTop += document.body.scrollTop; var nLeft = (clientDimensions.width - nWidth) / 2; if (nLeft < 0) { nLeft = 0; } dvModalDialogIFrameContainer.style.top = nTop + "px"; dvModalDialogIFrameContainer.style.left = nLeft + "px"; } function Utils_ShowMessageDialog_OnLoad(sMessage) { AddOpenWindowCommand("Utils_ShowMessageDialog('" + sMessage + "')"); } var openWindowsQueue = new Array(); function AddOpenWindowCommand(code) { openWindowsQueue[openWindowsQueue.length] = code; } var windowResizeListners = new Array(); function AddWindowResizeListner(code) { windowResizeListners[windowResizeListners.length] = code; } var postLoadScripts = new Array(); function AddPostLoadScript(sSrc) { postLoadScripts[postLoadScripts.length] = sSrc; } function LoadPendingScripts() { for (var l = 0; l < postLoadScripts.length; l++) LoadJS(postLoadScripts[l]); } var MasterPage_OnLoadFlag = false; function MasterPage_SetOnLoadFlag() { MasterPage_OnLoadFlag = true; ExecWindowOnResizeEventHandlers(); } function MasterPage_OnLoadFlagIsSet() { return MasterPage_OnLoadFlag; } function MasterPage_OnLoad() { AddWindowResizeListner("Page_OnResize()"); CalcClientSize(); if (_openedWindowName == "") { if (!IsInViewer()) SetPleaseWaitIFrame(); } window.onresize = ExecWindowOnResizeEventHandlers; ExecWindowOnResizeEventHandlers(); GetActiveUserStatus(false); window.setTimeout("OpenWindowsInQueue()", 250); if (isChrome) { var oRSSFeed = document.getElementById("hrefRSSFeed"); if (oRSSFeed != null) oRSSFeed.style.display = "none"; } Splitter_SetEvents(); // XBrowserAddHandler(document, "onmousemove", function (e) { mouseMove(e); }); $(document).mousemove(function (e) { mouseMove(e); }); XBrowserAddHandler(document, "onmouseup", function (e) { mouseUp(e); }); $(document).dblclick(function (e) { mouseDblclick(e); }); } function OpenWindowsInQueue() { for (var l = 0; l < openWindowsQueue.length; l++) eval(openWindowsQueue[l]); } function ExecWindowOnResizeEventHandlers() { for (var l = 0; l < windowResizeListners.length; l++) eval(windowResizeListners[l]); } function Page_OnResize() { CalcClientSize(); var dvModalDialogBackground = getElement("dvModalDialogBackground"); dvModalDialogBackground.style.width = clientDimensions.width; dvModalDialogBackground.style.height = clientDimensions.height; if (dvModalDialogBackground.style.display != "none") SetPopupDimensions(); } function footerHeight() { return (getElementHeight("trFooterContainer") + getElementHeight("trFooterContainer2") + getElementHeight("trFooterContainer3") + getElementHeight("trNoFrofitContainer")); } function getElementHeight(sID) { var oElement = getElement(sID); if (oElement == null) return 0; return oElement.offsetHeight } function setStageHeight(sStageID, bNavigationLineIsVisible) { var oStage = getElement(sStageID); var nHeight = clientHeight() - nWebsiteHeaderHeight - footerHeight() - (bNavigationLineIsVisible ? 25 : 0); if (nHeight > 30) { oStage.style.height = nHeight + "px"; oStage.style.display = ""; oStage.style.overflow = "auto"; } else { oStage.style.display = "none"; } } var qsParm = new Array(); function qs() { var query = window.location.search.substring(1); var parms = query.split('&'); for (var i = 0; i < parms.length; i++) { var pos = parms[i].indexOf('='); if (pos > 0) { var key = parms[i].substring(0, pos); var val = parms[i].substring(pos + 1); qsParm[key] = val; } } } function cancelEvent() { if (window.event) { window.event.returnValue = false; window.event.cancelBubble = true; } } function ReplaceAll(ex, oldChar, newChar) { oldChar = oldChar + ''; newChar = newChar + ''; if (newChar.indexOf(oldChar) != -1) { Utils_ShowErrorMessageDialog("ReplaceAll - worng syntax"); return; } var nIndexOfMatch = ex.indexOf(oldChar); while (nIndexOfMatch != -1) { ex = ex.replace(oldChar, newChar) nIndexOfMatch = ex.indexOf(oldChar); } return ex; } function encodeKotar(str) { str = encodeURIComponent(str); str = ReplaceAll(str, "'", "[A]"); str = ReplaceAll(str, '"', '[Q]'); return str; } function decodeKotar(str) { //% Char makes URI to be not valid encoding str = ReplaceAll(str, '%', '[S]'); str = decodeURIComponent(str); str = ReplaceAll(str, '[S]', '%'); str = ReplaceAll(str, "[A]", "'"); str = ReplaceAll(str, '[Q]', '"'); return str; } function CreateXmlHttp() { var XmlHttp; try { XmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { XmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (oc) { XmlHttp = null; } } if (!XmlHttp && typeof XMLHttpRequest != "undefined") XmlHttp = new XMLHttpRequest(); return XmlHttp; } function DoSiteSearch(sTextboxID, rbMybooksCtrlID, sSearchType, sLanguage, sProdType, sSearchPageBaseUrl) { var sMyBooks = ""; var sFilter = ""; var sBaseUrl = "/KotarApp/Search.aspx"; if (typeof (rbMybooksCtrlID) != "undefined" && rbMybooksCtrlID != "") if (getElement(rbMybooksCtrlID).checked) sMyBooks = "&bOnlyTitles=true"; if (typeof (sSearchType) == "undefined") sSearchType = "All"; if ((typeof (sLanguage) != "undefined") && sLanguage != "") { sFilter = "&bAdvanced=true&sLanguage=" + sLanguage; } if ((typeof (sProdType) != "undefined") && sProdType != "") { sFilter = "&bAdvanced=true&sProdType=" + sProdType; } if ((typeof (sSearchPageBaseUrl) != "undefined") && sSearchPageBaseUrl != "") { sBaseUrl = sSearchPageBaseUrl; } var sSearchText = getElement(sTextboxID).value; var myRegExp = new RegExp("<[^>]*>", "g"); sSearchText = sSearchText.replace(myRegExp, ""); sSearchText = encodeKotar(sSearchText); var sUrl = sBaseUrl + "?sSearchText=" + sSearchText + "&sSearchType=" + sSearchType + sMyBooks + sFilter; Utils_ShowMessageDialog(UTXT_Searching, UTXT_PleaseWait, false, "", "", true); window.setTimeout("SetWindowLocation('" + sUrl + "', false)", 500); } function SubmitSiteSearch(e, sTextboxID) { if (e.keyCode == 13) { DoSiteSearch(sTextboxID); return false; } } // ---------- Homepage Books Tabs ---------- var selectedHomePageTabButtonID = ""; function SelectHomePageUserTab(tdClientID, btnClientID) { document.getElementById(tdClientID).onclick = null; document.getElementById(tdClientID).onclick = null; SelectHomePageTabButton(document.getElementById(tdClientID), btnClientID, true); } function SelectHomePageTabButton(HomePageTabButton, btnClientID, bDoOnClick) { if (typeof (bDoOnClick) == "undefined") bDoOnClick = true; if (selectedHomePageTabButtonID != "") { // if (selectedHomePageTabButtonID == HomePageTabButton.id) // return; getElement(selectedHomePageTabButtonID).className = "button"; } HomePageTabButton.className = "selectedButton"; selectedHomePageTabButtonID = HomePageTabButton.id; if (bDoOnClick) { try { getElement(btnClientID).click(); } catch (e) { } } } function RefreshSelectedHomepageTab() { if (selectedHomePageTabButtonID != "") { if (isIE) getElement(selectedHomePageTabButtonID).click(); else getElement(selectedHomePageTabButtonID).onclick(); } } function HomePageTabButton_OnMouseOver(HomePageTabButton) { if (selectedHomePageTabButtonID != HomePageTabButton.id) HomePageTabButton.className = "highlightedButton"; } function HomePageTabButton_OnMouseOut(HomePageTabButton) { if (selectedHomePageTabButtonID != HomePageTabButton.id) HomePageTabButton.className = "button"; } // ------- BOOK THUMBNAIL BUTTONS -------- function ShowAddButtons(divID) { document.getElementById(divID + "_AddButtons").style.display = ""; } function HideAddButtons(divID) { document.getElementById(divID + "_AddButtons").style.display = "none"; } function BookThumb_CreateAddToCartParams(nBookID) { return new Array( { name: "nBookID", value: nBookID }, { name: "SerType", value: 2 }, { name: "tmp", value: Date() } ); } function BookThumb_AddToCart(nBookID, sLinkID, sThumbIconID) { document.getElementById(sLinkID).innerHTML = ""; document.getElementById(sThumbIconID).style.backgroundImage = "url(/KotarApp/Shop/Images/cart_icon_checked.gif)"; var params = new Array({ name: "nBookID", value: nBookID }); callAppKotarCommand("Products.AddToCart", params, { onSuccessFunction: BookThumb_AddToCart_OnSuccess, onFailureFunction: BookThumb_AddToCart_OnFailure, nBookID: nBookID }, false); } function BookThumb_AddToCart_OnSuccess(oRV, oInfo) { ShowAddBookToCartPopup(oInfo.nBooID); getElement("numItemsInShoppingCart").innerHTML = "(" + oRV.nItemsInCart + ")"; } function BookThumb_AddToCart_OnFailure() { Utils_ShowMessageDialog("BookThumb_AddToCart_OnFailure"); } function CloseAddedToCartPopup(bGoToShoppingCart) { GetAddToCartExtender().hide(); if (bGoToShoppingCart == true) window.location = "/KotarApp/Shop/Cart.aspx"; } function AddBookToFavorites(nBookID, bRefreshPage) { var params = new Array({ name: "nBookID", value: nBookID }); callAppKotarCommand("UserBooks.Add", params, { onSuccessFunction: AddBookToFavorites_OnComplete, onFailureFunction: AddBookToFavorites_OnError, bRefreshPage: bRefreshPage, nBookID: nBookID } ,false); cancelEvent(); } function AddBookToFavorites_OnError() { Utils_ShowErrorMessageDialog(UTXT_ActionFailed); } function AddBookToFavorites_OnComplete(oRes, oCmd) { var oIcon = document.getElementById("dvAddToFavorites_" + oCmd.nBookID); if (oIcon != null) oIcon.style.display = "none"; Utils_ShowMessageDialog(UTXT_BookAddedToFavorites, UTXT_ActionCompleted, false, (oCmd.bRefreshPage == false ? "" : "javascript:parent.location.reload()")); } var sUtils_sJSAction = ""; var bUtils_bInPlaceLogin = false; var bCancelTabRefresh = false; function Utils_OpenSmartLoginPopup(sJSAction, bCancelRefresh) { if (typeof (bCancelRefresh) != "undefined") bCancelTabRefresh = bCancelRefresh; sJSAction = ReplaceAll(sJSAction, "[A]", "'"); if (bUtils_bInPlaceLogin == true) { eval(sJSAction); return true; } cancelEvent(); sUtils_sJSAction = sJSAction; ShowLoginPopup(true, "Utils_SmartLogin_OnSuccess", true); return false; } function Utils_OpenInPlaceLoginPopup() { cancelEvent(); sUtils_sJSAction = ""; bCancelTabRefresh = false; ShowLoginPopup(true, "Utils_SmartLogin_OnSuccess", false); } function Utils_OpenLoginPopupAndRefreshAfterLogin() { ShowLoginPopup(true, "Utils_RefreshAfterLogin", false); } function Utils_RefreshAfterLogin(gUserID, sUsername, bIsAdmin, bIsCoordinator, bIsSchoolUser, bIsTeacher, nDefaultProjectID, sMySpaceUrl, numOpenTasksInLMS) { UpdateAnonymousControlsToReflectNewState(sUsername, bIsAdmin); var bAddedLMSLink = false; if ((bIsSchoolUser || bIsTeacher) && sMySpaceUrl != "") { if (getElement("tdMySpace1") != null) getElement("tdMySpace1").style.display = ""; if (getElement("tdMySpace2") != null) getElement("tdMySpace2").style.display = ""; if (typeof(hrefMySpaceClientID) != "undefined" && getElement(hrefMySpaceClientID) != null) getElement(hrefMySpaceClientID).href = sMySpaceUrl; OptionallySetInnerTextByID("numOpenTasksInLMS", (numOpenTasksInLMS == 0 ? "" : "(" + numOpenTasksInLMS + ")")); bAddedLMSLink = true; } if (bIsCoordinator && !bAddedLMSLink) window.setTimeout("Refresh('Utils_RefreshAfterLogin');", 200); else { Utils_SmartLogin_OnSuccess(gUserID, sUsername, bIsAdmin); } } var Utils_sClickOnSuccessfulLogin = ""; function Utils_SmartLogin_OnSuccess(gUserID, sUsername, bIsAdmin) { bUtils_bInPlaceLogin = true; BaseMaster_gUserID = gUserID; BaseMaster_bUserIsLoggedIn = true; UpdateAnonymousControlsToReflectNewState(sUsername, bIsAdmin); if (!bCancelTabRefresh) RefreshSelectedHomepageTab(); if (Utils_sClickOnSuccessfulLogin != "") { getElement(Utils_sClickOnSuccessfulLogin).click(); } if (sUtils_sJSAction != "") eval(sUtils_sJSAction); } function UpdateAnonymousControlsToReflectNewState(sUsername, bIsAdmin) { var loginButtons = getElement("tblHomepageLoginButtons"); if (loginButtons != null) loginButtons.style.display = "none"; if (sUsername.length > 15) sUsername = sUsername.substring(0, 15); document.getElementById(ltrUsername_ctrlID).innerHTML = sUsername; if (bIsAdmin == true) document.getElementById(ltrUsername_ctrlID).style.color = "green"; var oLogin = document.getElementById(hrefLogin_ctrlID); oLogin.href = "/default.aspx?logout=true"; oLogin.innerHTML = UTXT_Logout; oLogin.title = UTXT_Logout; } var _SmartLoginPopupForRedirect_sDestURL = ""; function Utils_OpenSmartLoginPopupForRedirect(sDestURL) { if (bUtils_bInPlaceLogin == false) { _SmartLoginPopupForRedirect_sDestURL = sDestURL; ShowLoginPopup(true, "Utils_SmartLoginPopupForRedirect_OnSuccess", true); } else window.location = sDestURL; } function Utils_SmartLoginPopupForRedirect_OnSuccess() { window.location = _SmartLoginPopupForRedirect_sDestURL; } var _nVerifiedLoginStatusInterval = 0; var _dtVerifiedLoginStatusIsReal = new Date(); _dtVerifiedLoginStatusIsReal.setFullYear(1970, 1, 1); //var _nVerifyActiveUserStatusResponseID = 0; function changeLanguage(url, lang) { var params = new Array( { name: "tmp", value: Date() } , { name: "url", value: url } , { name: "lang", value: lang }); executeWebRequest("Users.ChangeLanguage", params, { onSuccessFunction: ChangeLanguage_OnComplete, onFailureFunction: ChangeLanguage_OnFailure }); } function ChangeLanguage_OnComplete(url) { ssoRedirect(url); } function ChangeLanguage_OnFailure() { } ///this method working for Mozila and IE browser with SSO function ssoRedirect(url) { if (typeof (url) != 'undefined') { if (document.all) { $('#SSOredirect').attr('href', url); ($('#SSOredirect')[0]).click(); } else { //workaround for Mozila //to simutale click, beacuse aTagDomElement.click is not a function //from other side $(selector atag).click() not working on aa only on server side controls //which are implementing javascript postback document.location.href = url; } } } function GetActiveUserStatus(bNow) { var diff = new Date(); var now = new Date(); diff.setTime(Math.abs(_dtVerifiedLoginStatusIsReal.getTime() - now.getTime())); var numSecondsSinceLastCheck = (diff.getTime() / 1000); if (numSecondsSinceLastCheck > 180 || bNow) { _dtVerifiedLoginStatusIsReal = now; var params = new Array({ name: "cb", value: BrowserDetect.browser }, { name: "cbv", value: BrowserDetect.version }); callAppKotarCommand("Users.GetActiveUserStatus", params, { onSuccessFunction: GetActiveUserStatus_OnComplete, onFailureFunction: GetActiveUserStatus_OnFailure }, false); //seem like a safty machanisim when no response from server.was remarked cause it issued problems when upload files within Note //_nVerifyActiveUserStatusResponseID = window.setTimeout("VerifyActiveUserStatusResponse()", 7500); } if (_nVerifiedLoginStatusInterval == 0) _nVerifiedLoginStatusInterval = window.setInterval("GetActiveUserStatus(false)", 5000); } function VerifyActiveUserStatusResponse() { GetActiveUserStatus_Refresh(); } function GetActiveUserStatus_OnFailure() { GetActiveUserStatus_Refresh(); } function GetActiveUserStatus_OnComplete(oStatus) { if (oStatus == "Refresh" || BaseMaster_bUserIsLoggedIn != oStatus.bIsLoggedIn) { GetActiveUserStatus_Refresh(); } //window.clearTimeout(_nVerifyActiveUserStatusResponseID); //OptionallySetInnerTextByID("numOpenTasksInLMS", (oStatus.nNumOpenTasksInLMS == 0 ? "" : "(" + oStatus.nNumOpenTasksInLMS + ")")); } function GetActiveUserStatus_Refresh() { if (IsInViewer()) { location.reload(true); } else Refresh('GetActiveUserStatus_OnComplete'); } function Refresh(sCaller) { var hash = window.location.hash; var url = window.location.href.replace(hash, ''); var now; now = new Date(); if (url.indexOf("?") > 0) { url += "&ts=" + now.getTime(); } else { url += "?ts=" + now.getTime(); } window.location.replace(url + hash); } // This function executes a Web request. // using the AJAX.NET client library for all the data access functions. // Parameters: // "methodName" - a string with the name of method to call. // "parameters" - array of objects for the parameters to send with the FlashMethod. // object structure - { name: , value: } // "callbackData" - object with data to go with the call and come back on callback // 2 must have properties - { onSuccessFunction: , onFailureFunction: } // other than that - add any data in additional properties that want to be sent with the request. function executeCombinedWebRequest(methods, parameters, callbackData, serviceUrl, callbackFunc) { var sMethods = methods[0]; for (var m = 1; m < methods.length; m++) sMethods = sMethods + "," + methods[m]; executeWebRequest(sMethods, parameters, callbackData, serviceUrl, callbackFunc); } function executeWebRequest(methodName, parameters, callbackData, serviceUrl, callbackFunc) { var url = buildRequestURL(methodName, {}, serviceUrl); url += addTimestampParameter(parameters); webRequest = new Sys.Net.WebRequest(); webRequest.set_url(url); if (typeof (callbackData) != "undefined") webRequest.set_userContext(callbackData); addParameters(webRequest, parameters) webRequest.set_httpVerb("POST"); if (typeof (callbackFunc) == "undefined") webRequest.add_completed(callback); else { webRequest.set_userContext({ callbackFunc: callbackFunc }); webRequest.add_completed(callbackBridge); } webRequest.invoke(); } function callbackBridge(executor, eventArgs) { if (executor.get_responseData() == "Refresh") { Refresh('callbackBridge'); } var callbackData = executor.get_webRequest().get_userContext(); oHandler = eval(callbackData.callbackFunc); oHandler(executor); } function adjustCdnPattern(sCdnDomain) { if (sCdnDomain == '') return ''; var sHost = window.location.href.replace('http://', '').split('/')[0]; sHost = sHost.replace(".cotar.co.il", ".kotar.co.il") var sCDN = sCdnDomain.split('.')[0]; var sTempCdnDomain = sCdnDomain.replace(sCDN + ".", ""); var nIndex = sHost.toLowerCase().indexOf(sTempCdnDomain); return sCdnDomain; } var sAdjustedCdn = ""; function buildRequestURL(methodName, parameters, serviceUrl) { if (serviceUrl == undefined) { if (sAdjustedCdn == "") { var sHost = window.location.href.replace('http://', '').split('/')[0]; sAdjustedCdn = adjustCdnPattern(sHost); } serviceUrl = 'http://' + sAdjustedCdn + "/KotarApp/System/ApiBroker.aspx"; } if (serviceUrl.indexOf("?") == -1) serviceUrl += "?"; else if (serviceUrl.charAt(serviceUrl.length - 1) != "&") serviceUrl += "&"; var url = serviceUrl + "sMethod=" + methodName; if (parameters.length > 0) { for (i = 0; i < parameters.length; i++) url += "&" + parameters[i].name + "=" + parameters[i].value; } return url; } function addTimestampParameter(parameters) { if (parameters.length > 0) { for (i = 0; i < parameters.length; i++) { if (parameters[i].name == "tmp") { return "&" + parameters[i].name + "=" + getTimestamp() } } } return ""; } function getTimestamp() { var tmp = new Date(); return tmp.getFullYear() + "." + tmp.getMonth() + "." + tmp.getDate() + "." + tmp.getHours() + "." + tmp.getMinutes() + "." + tmp.getSeconds() + "." + tmp.getMilliseconds(); } function addParameters(webRequest, parameters) { var sParams = ""; if (parameters.length > 0) { for (i = 0; i < parameters.length; i++) { if (parameters[i].name != "tmp") sParams += (sParams != "" ? "&" : "") + parameters[i].name + "=" + parameters[i].value; } } var gUserID = (typeof (BaseMaster_gUserID) == "undefined" ? '00000000-0000-0000-0000-000000000000' : BaseMaster_gUserID); sParams += (sParams != "" ? "&" : "") + "gUserID=" + gUserID; webRequest.set_body(sParams); } function callback(executor, eventArgs) { if (executor.get_responseAvailable()) { var callbackData = executor.get_webRequest().get_userContext(); if (executor.get_statusCode() == 200) // loading completed successfully { try { if (executor.get_responseData() == "Refresh") { Refresh('callback'); return; } eval('var recievedData = ' + executor.get_responseData()); } catch (Error) { callbackData.onFailureFunction(callbackData); return; } callbackData.onSuccessFunction(recievedData, callbackData); } else callbackData.onFailureFunction(callbackData); } else { if (executor.get_timedOut()) { // TODO: message for server call timeout } else if (executor.get_aborted()) { // TODO: message for server call aborted } } } function callbackXml(executor, eventArgs) { if (executor.get_responseAvailable()) { var callbackData = executor.get_webRequest().get_userContext(); if (executor.get_statusCode() == 200) // loading completed successfully { try { var recievedData = getXMLDoc(executor.get_responseData()); } catch (Error) // error in servers response { callbackData.onFailureFunction(callbackData); return; } callbackData.onSuccessFunction(recievedData, callbackData); } else // loading completed with errors - try again { callbackData.onFailureFunction(callbackData); } } else { if (executor.get_timedOut()) { // TODO: message for server call timeout } else if (executor.get_aborted()) { // TODO: message for server call aborted } } } ////////////////////////////// var Splitter_bDraggingDisabled = false; var Splitter_bToggleBtnDisabled = false; var Splitter_bDragging = false; var Splitter_oSlider = false; var Splitter_nStartMouseX; var Splitter_nStartSplitterX; var Splitter_nWidth = 8 var Splitter_fRatio = 0.3 function Splitter_SetEvents() { var oHandle = getElement("imgSplitterHandle"); if (oHandle != null) XBrowserAddHandler(oHandle, "onmousedown", function (e) { SplitterHandle_OnMouseDown(e); return false; }); } function SplitterHandle_OnMouseDown(e) { if (window.event) e = window.event; if (e.preventDefault) { e.preventDefault(); } e.cancelBubble = true; } function GetElementPos(oElement) { var nLeft = 0; var nTop = 0; while (oElement != null) { nLeft += oElement.offsetLeft; nTop += oElement.offsetTop; oElement = oElement.offsetParent; } return { nLeft: nLeft, nTop: nTop } } function Splitter_DisableDragging() { Splitter_bDraggingDisabled = true; } function Splitter_EnableDragging() { Splitter_bDraggingDisabled = false; } function Splitter_StartDrag(event) { if (Splitter_bDragging || Splitter_bDraggingDisabled) return; var oPos = GetElementPos(oSplitterLine); Splitter_oSlider = document.createElement("DIV"); Splitter_oSlider.style.overflow = "hidden"; Splitter_oSlider.style.width = "8px"; if (oSplitterLine.parentElement != null) Splitter_oSlider.style.height = oSplitterLine.parentElement.offsetHeight + "px"; else Splitter_oSlider.style.height = oSplitterLine.parentNode.offsetHeight + "px"; Splitter_oSlider.style.position = "absolute"; Splitter_oSlider.style.left = oPos.nLeft + "px"; Splitter_oSlider.style.top = oPos.nTop + "px"; Splitter_oSlider.style.backgroundImage = "url(/KotarApp/Resources/Images/Splitter/splitter_tile.gif)"; Splitter_oSlider.style.backgroundPosition = "center center"; Splitter_oSlider.style.backgroundRepeat = "repeat-y"; document.body.appendChild(Splitter_oSlider); Splitter_nStartMouseX = mousePos.x; Splitter_nStartSplitterX = oPos.nLeft; Splitter_bDragging = true; } function Splitter_ContinueDrag() { if (!Splitter_bDragging) return; var nDiff = mousePos.x - Splitter_nStartMouseX; var nNewLeft = Splitter_nStartSplitterX + nDiff; Splitter_oSlider.style.left = nNewLeft + "px"; } function Splitter_EndDrag() { if (!Splitter_bDragging) return; Splitter_bDragging = false; var nDiff = Splitter_oSlider.offsetLeft - Splitter_nStartSplitterX; document.body.removeChild(Splitter_oSlider); var nStageWidth = clientWidth(); var nTabsWidth = Math.round(nStageWidth * Splitter_fRatio); if (isRTL()) nTabsWidth -= nDiff; else nTabsWidth += nDiff; Splitter_fRatio = nTabsWidth / nStageWidth; //So it's practically closed if (Splitter_fRatio < 0) { Splitter_SetDefaultRatio(); CloseSplitter(); } if (Splitter_fRatio > 0.70) Splitter_fRatio = 0.70; ExecSplitterOnResizeEventHandlers(); } function Splitter_SetDefaultRatio() { Splitter_fRatio = 0.3; } function Splitter_GetCollpasiblePanel() { var oPanel = document.getElementById("oSubjectsTreeContainer"); if (oPanel == null) oPanel = document.getElementById("oTabs"); return oPanel; } function Splitter_CalcRatio() { var oPanel = Splitter_GetCollpasiblePanel(); Splitter_fRatio = (oPanel.style.width.replace('px', '') * 1) / clientWidth(); } var nSplitter_fRatio_onClose = 0; //check if user closed splitter //or it was closed when it was full screen var bSplitterClosedByUser = true; function Splitter_DisableToggleBtn() { Splitter_bToggleBtnDisabled = true; } function Splitter_EnableToggleBtn() { Splitter_bToggleBtnDisabled = false; } function OpenSplitter() { if (Splitter_bToggleBtnDisabled) return; var oPanel = Splitter_GetCollpasiblePanel(); oPanel.style.display = ''; oOpenedSplitter.style.display = 'block'; oClosedSplitter.style.display = 'none'; Splitter_fRatio = nSplitter_fRatio_onClose; //0.3; ExecSplitterOnResizeEventHandlers(); } function CloseSplitter() { if (Splitter_bToggleBtnDisabled) return; var oPanel = Splitter_GetCollpasiblePanel(); oPanel.style.display = 'none'; oOpenedSplitter.style.display = 'none'; oClosedSplitter.style.display = 'block'; nSplitter_fRatio_onClose = Splitter_fRatio; Splitter_fRatio = 0; ExecSplitterOnResizeEventHandlers(); } var splitterResizeListners = new Array(); function AddSplitterResizeListner(code) { splitterResizeListners[splitterResizeListners.length] = code; } function ExecSplitterOnResizeEventHandlers() { for (var l = 0; l < splitterResizeListners.length; l++) eval(splitterResizeListners[l]); } var oBreakPoints = new Array(); function Dbg(sName) { if (typeof (oBreakPoints[sName]) == "undefined") { oBreakPoints[sName] = true; debugger; } } function AddDebugMessage(msg) { if (BaseMaster_bIsInDevMode) { var oNow = new Date(); document.title = oNow.toLocaleTimeString() + ":" + oNow.getMilliseconds() + " - " + msg; } } var mousePos = null; function mouseMove(ev) { ev = ev || window.event; mousePos = mouseCoords(ev); if (Splitter_bDragging) Splitter_ContinueDrag(); if (typeof(book_OnMouseMove) != "undefined") { book_OnMouseMove(ev); } if (typeof(Page_OnMouseMove) != "undefined") { Page_OnMouseMove(ev); } } function mouseUp(ev) { if (Splitter_bDragging) Splitter_EndDrag(); if (typeof(book_OnMouseUp) != "undefined") { book_OnMouseUp(ev); } if (typeof(Page_OnMouseUp) != "undefined") { Page_OnMouseUp(ev); } } function mouseDblclick(ev) { ev = ev || window.event; mousePos = mouseCoords(ev); if (typeof (Page_OnMouseDblclick) != "undefined") { Page_OnMouseDblclick(ev); } }; function mouseCoords(ev) { try { if (ev.pageX || ev.pageY) { return { x: ev.pageX, y: ev.pageY }; } else if (typeof (document.body) != "undefined") { var evX = ev.clientX + document.body.scrollLeft - document.body.clientLeft; var evY = ev.clientY + document.body.scrollTop - document.body.clientTop; return { x: evX, y: evY }; } } catch (e) { } return null; } function XBrowserAddHandler(target, eventName, handlerName) { if (eventName.indexOf("on") == 0) eventName = eventName.substring(2); if (target.addEventListener) { // FireFox target.addEventListener(eventName, handlerName, false); } else if (target.attachEvent) { // IE target.attachEvent("on" + eventName, handlerName); } else { target["on" + eventName] = handlerName; } } var clientDimensions = null; function clientWidth() { CalcClientSize(); return clientDimensions.width; } function clientHeight() { CalcClientSize(); return clientDimensions.height; } function CalcClientSize() { var myWidth = 0, myHeight = 0; if (typeof (window.innerWidth) == 'number') { //Non-IE myWidth = window.innerWidth; myHeight = window.innerHeight; } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) { //IE 6+ in 'standards compliant mode' myWidth = document.documentElement.clientWidth; myHeight = document.documentElement.clientHeight; } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) { //IE 4 compatible myWidth = document.body.clientWidth; myHeight = document.body.clientHeight; } clientDimensions = { width: myWidth, height: myHeight }; } function f_scrollTop() { return f_filterResults( window.pageYOffset ? window.pageYOffset : 0, document.documentElement ? document.documentElement.scrollTop : 0, document.body ? document.body.scrollTop : 0 ); } function f_filterResults(n_win, n_docel, n_body) { var n_result = n_win ? n_win : 0; if (n_docel && (!n_result || (n_result > n_docel))) n_result = n_docel; return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result; } /** * A simple JavaScript image loaderimage loader * @author Cuong Tham * @url http://thecodecentral.com/2008/02/21/a-useful-javascript-image-loader * @usage * var loader = new ImageLoader('IMAGE_URL'); * //set event handler * loader.loadEvent = function(url, image){ * //action to perform when the image is loaded * document.body.appendChild(image); * } * loader.load(); */ //source: http://snipplr.com/view.php?codeview&id=561 // Cross-browser implementation of element.addEventListener() function addListener(element, type, expression, bubbling) { bubbling = bubbling || false; if (window.addEventListener) { // Standard element.addEventListener(type, expression, bubbling); return true; } else if (window.attachEvent) { // IE element.attachEvent('on' + type, expression); return true; } else return false; } var ImageLoader = function (url) { this.url = url; this.image = null; this.loadEvent = null; }; ImageLoader.prototype = { load: function () { this.image = document.createElement('img'); var url = this.url; var image = this.image; var loadEvent = this.loadEvent; addListener(this.image, 'load', function (e) { if (loadEvent != null) { loadEvent(url, image); } }, false); this.image.src = this.url; }, getImage: function () { return this.image; } }; function OptionallySetInnerTextByID(sCtrlID, sValue) { var oCtrl = getElement(sCtrlID); if (oCtrl != null) SetInnerText(oCtrl, sValue); } function SetInnerTextByID(sCtrlID, sValue) { SetInnerText(getElement(sCtrlID), sValue); } function SetInnerText(oCtrl, sValue) { if (isIE) oCtrl.innerText = sValue; else if (oCtrl.tagName.toLowerCase() == "div" || oCtrl.tagName.toLowerCase() == "span") oCtrl.innerHTML = sValue; else oCtrl.text = sValue; } function GetInnerText(oCtrl) { if (isIE) return oCtrl.innerText; else return oCtrl.text; } function SetWindowLocation(sUrl, bNewWindow) { if (typeof (bNewWindow) == "undefined") bNewWindow = true; if (bNewWindow) { if (isIE == false && !isIE11) { window.open(sUrl); } else { var oLink = document.createElement("a"); oLink.target = "_blank"; oLink.href = sUrl; document.body.appendChild(oLink); oLink.click(); } } else { if (isIE) location.href = sUrl; else window.location.replace(sUrl); } } var BrowserDetect = { init: function () { this.browser = this.searchString(this.dataBrowser) || "An unknown browser"; this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "an unknown version"; }, searchString: function (data) { for (var i = 0; i < data.length; i++) { var dataString = data[i].string; var dataProp = data[i].prop; this.versionSearchString = data[i].versionSearch || data[i].identity; if (dataString) { if (dataString.indexOf(data[i].subString) != -1) return data[i].identity; } else if (dataProp) return data[i].identity; } }, searchVersion: function (dataString) { var index = dataString.indexOf(this.versionSearchString); if (index == -1) return; return parseFloat(dataString.substring(index + this.versionSearchString.length + 1)); }, dataBrowser: [ { string: navigator.userAgent, subString: "Chrome", identity: "Chrome" }, { string: navigator.vendor, subString: "Apple", identity: "Safari", versionSearch: "Version" }, { prop: window.opera, identity: "Opera" }, { string: navigator.userAgent, subString: "Firefox", identity: "Firefox" }, { string: navigator.userAgent, subString: "MSIE", identity: "Explorer", versionSearch: "MSIE" } ] }; BrowserDetect.init(); function IsFirefox() { return (BrowserDetect.browser == "Firefox"); } var nNavHelper = 0; var aHelp = ["Help", "I need somebody", "not just anybody", "you know I need someone", "H...e...l...p...!"]; function hrefNavHelp_OnMouseOver() { if (isRTL() == false) { document.getElementById("hrefNavHelp").title = aHelp[nNavHelper]; if (nNavHelper < aHelp.length - 1) nNavHelper++; else nNavHelper = 0; } } function RectangleIsInRange(oRect, nMaxWidth, nMaxHeight) { var x = oRect.x * 1; var y = oRect.y * 1; var w = oRect.width * 1; var h = oRect.height * 1; return (x > 0 && y > 0 && w > 0 && h > 0 && x + w < nMaxWidth && y + h < nMaxHeight); } function Utilities_SetCtrlDisplay(sCtrlID, bDisplay) { if (typeof (sCtrlID) == 'undefined' || sCtrlID == "") return; var oCtrl = document.getElementById(sCtrlID); if (oCtrl == null) return; oCtrl.style.display = (bDisplay ? 'block' : 'none'); } function Utilities_SetCtrlClass(sCtrlID, sClass) { if (typeof (sCtrlID) == 'undefined' || sCtrlID == "") return; var oCtrl = document.getElementById(sCtrlID); if (oCtrl == null) return; oCtrl.className = sClass; } function OpenMembersPage(sort) { var sUrl = "/Misc/Members.aspx?nSort=" + sort; Utils_ShowMessageDialog(UTXT_Searching, UTXT_PleaseWait, false, "", "", true); window.setTimeout("SetWindowLocation('" + sUrl + "', false)", 500); } function ShowTechnicalRequirementsPopup() { ChangeIFrameSource("/Item/TechnicalReq.aspx", true) ShowModalPopup("TechnicalRequirements"); } function ZeroPad(num, count) { var numZeropad = num + ''; while (numZeropad.length < count) { numZeropad = "0" + numZeropad; } return numZeropad; } function callAppKotarCommandNoSession(command, parameters, callbackData, iscacheable, isAsync) { /// Create an ajax call and calls the success or fail callbacks /// command name /// Array of name-value objects /// Object with callbacks and command data to be returned /// Define if the ajax call will be cache /// Define if the ajax call will be async var url = buildKotarCommandBaseUrl('CommandHandlerNoSession', command); callAppKotarCommandBase(url, command, parameters, callbackData, iscacheable, isAsync); }; function callAppKotarCommand(command, parameters, callbackData, iscacheable) { var url = buildKotarCommandBaseUrl('CommandHandler', command); callAppKotarCommandBase(url, command, parameters, callbackData, iscacheable,true); }; function callAppKotarCommandSync(command, parameters, callbackData, iscacheable) { var url = buildKotarCommandBaseUrl('CommandHandler', command); callAppKotarCommandBase(url, command, parameters, callbackData, iscacheable,false); }; function callAppKotarCommandBase(url, command, parameters, callbackData, iscacheable, isasync) { /// Create an ajac call and class the success or fail callbacks /// command name /// Array of name value objects /// Object with callbacks and command data to be returned /// Define if the ajax call will be cache /// Define if the ajax call will be async if (iscacheable === undefined) { iscacheable = false; } if (isasync === undefined) { isasync = true; } //add params if (parameters && parameters.length > 0) { for (var i = 0; i < parameters.length; i++) { url += '&' + parameters[i].name + '=' + parameters[i].value; } } var gUserID = (typeof (BaseMaster_gUserID) == "undefined" ? '00000000-0000-0000-0000-000000000000' : BaseMaster_gUserID); url += "&gUserID=" + gUserID; $.ajax({ url: url, cache: iscacheable, async: isasync, success: function (response) { if (response) { if (response === "Refresh") { //users.getactiveuserstatus check if user is avtive and if not send respond "Refresh" Refresh('callbackBridge'); //this will logout the user return; } callbackData.onSuccessFunction(response, callbackData); } else { callbackData.onFailureFunction(); } }, fail: function fail(jqx, error, ex) { alert(error); } }); }; var kotarcommandBaseUrl = ''; function buildKotarCommandBaseUrl(pagename, methodName) { if (kotarcommandBaseUrl === '') { var sHost = window.location.href.replace('http://', '').split('/')[0]; kotarcommandBaseUrl = adjustCdnPattern(sHost); } var pageurl = new Array(); pageurl.push('http://', kotarcommandBaseUrl, '/KotarApp/System/', pagename, '.aspx?command=', methodName); return pageurl.join(''); } function buildKotarCommandBaseUrlWithParams(pagename, methodName,params) { if (kotarcommandBaseUrl === '') { var sHost = window.location.href.replace('http://', '').split('/')[0]; kotarcommandBaseUrl = adjustCdnPattern(sHost); } var pageurl = new Array(); pageurl.push('http://', kotarcommandBaseUrl, '/KotarApp/System/', pagename, '.aspx?command=', methodName); if (params && params.length > 0) { for (var i = 0; i < params.length; i++) { pageurl.push('&' + params[i].name + '=' + params[i].value); } } return pageurl.join(''); } function AddUsageLog(usageName) { var params = new Array({ name: "UsageName", value: usageName }); callAppKotarCommand("addusageLog", params, { onSuccessFunction: AddUsageLog_OnComplete, onFailureFunction: AddUsageLog_OnError }, false); } function AddUsageLog_OnComplete() { } function AddUsageLog_OnError() { }