Help
RSS
API
Feed
Maltego
Contact
Domain > icit.my.salesforce-sites.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2023-02-13
160.8.15.18
(
ClassC
)
2024-11-06
34.211.108.47
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyDate: Wed, 06 Nov 2024 14:56:06 GMTContent-Type: text/htmlContent-Length: 166Connection: keep-aliveLocation: https://icit.my.salesforce-sites.com:443/Server: sfdcedge html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>openresty/center>/body>/html>
Port 443
HTTP/1.1 200 OKDate: Wed, 06 Nov 2024 14:56:07 GMTContent-Type: text/html;charsetUTF-8Transfer-Encoding: chunkedConnection: keep-aliveSet-Cookie: CookieConsentPolicy0:1; path/; expiresThu, 06-Nov-2025 14:56:07 GMT; Max-Age31536000; secureSet-Cookie: LSKey-c$CookieConsentPolicy0:1; path/; expiresThu, 06-Nov-2025 14:56:07 GMT; Max-Age31536000; secureSet-Cookie: BrowserIdQIBkF5xPEe-GFmG2GWSZ6A; path/; expiresThu, 06-Nov-2025 14:56:07 GMT; Max-Age31536000; secure; SameSiteNoneCache-Control: no-cache,must-revalidate,max-age0,no-store,privateVary: Accept-EncodingX-FRAME-OPTIONS: SAMEORIGINContent-Security-Policy: upgrade-insecure-requestsContent-Security-Policy: frame-ancestors selfX-Content-Type-Options: nosniffP3P: CPCUR OTR STAStrict-Transport-Security: max-age63072000; includeSubDomainsExpires: Thu, 01 Jan 1970 00:00:00 GMTServer: sfdcedgeX-SFDC-Request-Id: 3837294a31d0ee1ee062bf8d4c35b5d5X-Request-Id: 3837294a31d0ee1ee062bf8d4c35b5d5X-SFDC-Edge-Cache: MISS !DOCTYPE HTML> head>script src/static/111213/js/perf/stub.js typetext/javascript>/script>script src/jslibrary/1698336665252/sfdc/VFRemote.js typetext/javascript>/script>link classuser href/resource/1539675687000/FlagsSVG/flags-svg/css/flag-icon.css relstylesheet typetext/css />script src/jslibrary/1698336665252/sfdc/NetworkTracking.js typetext/javascript>/script>script>try{ NetworkTracking.init(/_ui/networks/tracking/NetworkTrackingServlet, network, 0660X000002ZoeO); }catch(x){}/script>script>(function(UITheme) { UITheme.getUITheme function() { return UserContext.uiTheme; };}(window.UITheme window.UITheme || {}));/script>script typetext/javascript>Visualforce.remoting.Manager.add(new $VFRM.RemotingProviderImpl({vf:{vid:0660X000002ZoeO,xhr:false,dev:false,tst:false,dbg:false,tm:1730904967311,ovrprm:false},actions:{vf_MembershipRegistrationController:{ms:{name:CreateOpportunityWithZeroValue,len:2,ns:,ver:43.0,csrf:VmpFPSxNakF5TkMweE1TMHdPVlF4TkRvMU5qb3dOeTR6TVRGYSwxZldkYXVMZUZGNjl0SXZPTTlWSnNrYWtkczBYUmZPeWpKaTJ5SWFiUkNFPSxOVGMyTVRsaw,authorization:eyJub25jZSI6IjZXVmFVWV80LXBZU3l3cnBTN19YSmJFeWJhMHNqTFNIZG42YTJQUERrM2NcdTAwM2QiLCJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImtpZCI6IntcInRcIjpcIjAwRDBYMDAwMDAwdWFkSlwiLFwidlwiOlwiMDJHMFgwMDAwMDBZR3J1XCIsXCJhXCI6XCJ2ZnJlbW90aW5nc2lnbmluZ2tleVwiLFwidVwiOlwiMDA1MFgwMDAwMDhUdWZiXCJ9IiwiY3JpdCI6WyJpYXQiXSwiaWF0IjoxNzMwOTA0OTY3MzEyLCJleHAiOjB9.Q2tKMlpsOU5aVzFpWlhKemFHbHdVbVZuYVhOMGNtRjBhVzl1UTI5dWRISnZiR3hsY2k1RGNtVmhkR1ZQY0hCdmNuUjFibWwwZVZkcGRHaGFaWEp2Vm1Gc2RXVT0.GVLJwPTTBf68CfBYOcL7XGO1CljCHIUP6qW1l4-zRuc},{name:InsertClearanceInitiatorToDB,len:4,ns:,ver:43.0,csrf:VmpFPSxNakF5TkMweE1TMHdPVlF4TkRvMU5qb3dOeTR6TVROYSwxazRmbmxTd2U1ZXBFMkpuc0Itc3BuSjlZdEtzelhTbHN4UEZVblJObzhFPSxOVEZsTVRsbQ,authorization:eyJub25jZSI6IkJ2T3BxZW8tNUlGWVJSYUJMbzlPY3JGT3Q3S1NJR0kyWDdpbnhJMjFUT1lcdTAwM2QiLCJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImtpZCI6IntcInRcIjpcIjAwRDBYMDAwMDAwdWFkSlwiLFwidlwiOlwiMDJHMFgwMDAwMDBZR3J1XCIsXCJhXCI6XCJ2ZnJlbW90aW5nc2lnbmluZ2tleVwiLFwidVwiOlwiMDA1MFgwMDAwMDhUdWZiXCJ9IiwiY3JpdCI6WyJpYXQiXSwiaWF0IjoxNzMwOTA0OTY3MzEzLCJleHAiOjB9.Q2tCMlpsOU5aVzFpWlhKemFHbHdVbVZuYVhOMGNtRjBhVzl1UTI5dWRISnZiR3hsY2k1SmJuTmxjblJEYkdWaGNtRnVZMlZKYm1sMGFXRjBiM0pVYjBSQw.rfmGHbCEryHUv2HLSlPwdXz1dwjjIr4Ul0gb7LKWLdk},{name:deleteEducation,len:1,ns:,ver:43.0,csrf:VmpFPSxNakF5TkMweE1TMHdPVlF4TkRvMU5qb3dOeTR6TVROYSxhSld2dDRkYjhxYUdwVDZmUXpCd09FaTMxT0FPTGpINUhJQzh1UWdld3pJPSxaalF4TVdKaw,authorization:eyJub25jZSI6IjNlXzJZal9iVW1TU0lVWlVOR1dkV0JfY0NHWXVYNEFHWDVDREdMdzlVdTBcdTAwM2QiLCJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImtpZCI6IntcInRcIjpcIjAwRDBYMDAwMDAwdWFkSlwiLFwidlwiOlwiMDJHMFgwMDAwMDBZR3J1XCIsXCJhXCI6XCJ2ZnJlbW90aW5nc2lnbmluZ2tleVwiLFwidVwiOlwiMDA1MFgwMDAwMDhUdWZiXCJ9IiwiY3JpdCI6WyJpYXQiXSwiaWF0IjoxNzMwOTA0OTY3MzEzLCJleHAiOjB9.Q2pOMlpsOU5aVzFpWlhKemFHbHdVbVZuYVhOMGNtRjBhVzl1UTI5dWRISnZiR3hsY2k1a1pXeGxkR1ZGWkhWallYUnBiMjQ9.vifKwuPBBI7xcw-M422GLKnHde0GQh8XNEhjnkgBi4Y},{name:deleteEmployment,len:1,ns:,ver:43.0,csrf:VmpFPSxNakF5TkMweE1TMHdPVlF4TkRvMU5qb3dOeTR6TVROYSxfYmRUXzFNQlFGbWFVUy1oOFhneFgtRm9tdC1oY2ZqTDBySEJNMnMtWXVvPSxNRFl3TmpjeQ,authorization:eyJub25jZSI6Im9wcG5uXzlXVWxiVlBXRWU1cFk4ZEc1NmZ2RHJSMlFWMFlJUmpyYkpMWnNcdTAwM2QiLCJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImtpZCI6IntcInRcIjpcIjAwRDBYMDAwMDAwdWFkSlwiLFwidlwiOlwiMDJHMFgwMDAwMDBZR3J1XCIsXCJhXCI6XCJ2ZnJlbW90aW5nc2lnbmluZ2tleVwiLFwidVwiOlwiMDA1MFgwMDAwMDhUdWZiXCJ9IiwiY3JpdCI6WyJpYXQiXSwiaWF0IjoxNzMwOTA0OTY3MzE0LCJleHAiOjB9.Q2pSMlpsOU5aVzFpWlhKemFHbHdVbVZuYVhOMGNtRjBhVzl1UTI5dWRISnZiR3hsY2k1a1pXeGxkR1ZGYlhCc2IzbHRaVzUw.1g00UxC_pYcXJoG1zv_KTd1VBVbZVgpaHlSZehxIazw},{name:fatalErrorOccured,len:2,ns:,ver:43.0,csrf:VmpFPSxNakF5TkMweE1TMHdPVlF4TkRvMU5qb3dOeTR6TVRSYSxCSlpWSHBBeVhib0dtMDRBdFJJR3A4c1l6Z210ZGdQTE52VzFhYXJNWURFPSxaR1V3TVRBeA,authorization:eyJub25jZSI6IjhBT3RxRl8wYU1wWEs0dDZBOUJCRmhUNktxSllFZ3NtTDlZckNFNWZKQ1FcdTAwM2QiLCJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImtpZCI6IntcInRcIjpcIjAwRDBYMDAwMDAwdWFkSlwiLFwidlwiOlwiMDJHMFgwMDAwMDBZR3J1XCIsXCJhXCI6XCJ2ZnJlbW90aW5nc2lnbmluZ2tleVwiLFwidVwiOlwiMDA1MFgwMDAwMDhUdWZiXCJ9IiwiY3JpdCI6WyJpYXQiXSwiaWF0IjoxNzMwOTA0OTY3MzE0LCJleHAiOjB9.Q2pWMlpsOU5aVzFpWlhKemFHbHdVbVZuYVhOMGNtRjBhVzl1UTI5dWRISnZiR3hsY2k1bVlYUmhiRVZ5Y205eVQyTmpkWEpsWkE9PQ.CEnf4V5BMJaIkS8x8fHSU8ugQHWk2XuGrv3Coiy59Rg},{name:insertTranzilaObject,len:2,ns:,ver:43.0,csrf:VmpFPSxNakF5TkMweE1TMHdPVlF4TkRvMU5qb3dOeTR6TVRSYSxCLS0wT2NkYkxGbUFhdl9rc09Tdkhjb29zNzkxYmhOc1JmU2tPRFVpcWpFPSxORGMwTWpobA,authorization:eyJub25jZSI6Ik5lWjg5amo2cklST3ZSWDUxQUNrMXdBZTlaTnc2SGNBaXphRGJsQ2NIbE1cdTAwM2QiLCJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImtpZCI6IntcInRcIjpcIjAwRDBYMDAwMDAwdWFkSlwiLFwidlwiOlwiMDJHMFgwMDAwMDBZR3J1XCIsXCJhXCI6XCJ2ZnJlbW90aW5nc2lnbmluZ2tleVwiLFwidVwiOlwiMDA1MFgwMDAwMDhUdWZiXCJ9IiwiY3JpdCI6WyJpYXQiXSwiaWF0IjoxNzMwOTA0OTY3MzE0LCJleHAiOjB9.Q2poMlpsOU5aVzFpWlhKemFHbHdVbVZuYVhOMGNtRjBhVzl1UTI5dWRISnZiR3hsY2k1cGJuTmxjblJVY21GdWVtbHNZVTlpYW1WamRBPT0.-CLidKnMujlC2_UcVQH5JPGPifFuBkH6bsuXJlTR6Wo},{name:updateContactObject,len:4,ns:,ver:43.0,csrf:VmpFPSxNakF5TkMweE1TMHdPVlF4TkRvMU5qb3dOeTR6TVRWYSw1SzlvZXRQRk9XRURqS2dBQ3RmbWd5azNOSUVSQ0ZzbHdKYlZvS1ZIVVp3PSxNekpqWkdGag,authorization:eyJub25jZSI6IndoLXItU2FQLWU5dUg3b29SQlhWcV9QLXJoVzNUd1JLT0E1ODVvdUZ0ZVlcdTAwM2QiLCJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImtpZCI6IntcInRcIjpcIjAwRDBYMDAwMDAwdWFkSlwiLFwidlwiOlwiMDJHMFgwMDAwMDBZR3J1XCIsXCJhXCI6XCJ2ZnJlbW90aW5nc2lnbmluZ2tleVwiLFwidVwiOlwiMDA1MFgwMDAwMDhUdWZiXCJ9IiwiY3JpdCI6WyJpYXQiXSwiaWF0IjoxNzMwOTA0OTY3MzE1LCJleHAiOjB9.Q2pkMlpsOU5aVzFpWlhKemFHbHdVbVZuYVhOMGNtRjBhVzl1UTI5dWRISnZiR3hsY2k1MWNHUmhkR1ZEYjI1MFlXTjBUMkpxWldOMA.vVwWxbz8Do-AsO2HUiba56BxBDv13iZHTy_jrB5FN7k},{name:upsertEducationEmploymentObject,len:3,ns:,ver:43.0,csrf:VmpFPSxNakF5TkMweE1TMHdPVlF4TkRvMU5qb3dOeTR6TVRWYSxEU2xGVnpnb0lnYXhLTVItTXE4Q0FNeHdEV2xPV3M0X2ptTTdCdGJ6T0hrPSxNMlJoWXpRNA,authorization:eyJub25jZSI6IkszWC1vaFZnQ0JuREtFZW5GRklBd2NtS3NIRERoUFFJNlpfdko0SzhNZkFcdTAwM2QiLCJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImtpZCI6IntcInRcIjpcIjAwRDBYMDAwMDAwdWFkSlwiLFwidlwiOlwiMDJHMFgwMDAwMDBZR3J1XCIsXCJhXCI6XCJ2ZnJlbW90aW5nc2lnbmluZ2tleVwiLFwidVwiOlwiMDA1MFgwMDAwMDhUdWZiXCJ9IiwiY3JpdCI6WyJpYXQiXSwiaWF0IjoxNzMwOTA0OTY3MzE1LCJleHAiOjB9.Q2tOMlpsOU5aVzFpWlhKemFHbHdVbVZuYVhOMGNtRjBhVzl1UTI5dWRISnZiR3hsY2k1MWNITmxjblJGWkhWallYUnBiMjVGYlhCc2IzbHRaVzUwVDJKcVpXTjA.hI3L4LV5kIuPPeAPxdd1QztXnd43JAysNMS9ddHWHuc},prm:0},vfc_GenericFileUploadController:{ms:{name:attachBlob,len:5,ns:,ver:44.0,csrf:VmpFPSxNakF5TkMweE1TMHdPVlF4TkRvMU5qb3dOeTR6TVRWYSxjbzVPWm5JZFROM2NPQThIYTlhS2lQaUQ3MlA5TXo0S0RCa2pLTFpqYWtrPSxORGt3TW1GbQ,authorization:eyJub25jZSI6IktsLUtRTjZCanpmbmRQdDRlZlRIWjBfc1NldXQ0QjNkSVJlNnMzQTh5UThcdTAwM2QiLCJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImtpZCI6IntcInRcIjpcIjAwRDBYMDAwMDAwdWFkSlwiLFwidlwiOlwiMDJHMFgwMDAwMDBZR3J1XCIsXCJhXCI6XCJ2ZnJlbW90aW5nc2lnbmluZ2tleVwiLFwidVwiOlwiMDA1MFgwMDAwMDhUdWZiXCJ9IiwiY3JpdCI6WyJpYXQiXSwiaWF0IjoxNzMwOTA0OTY3MzE2LCJleHAiOjB9.Q2lwMlptTmZSMlZ1WlhKcFkwWnBiR1ZWY0d4dllXUkRiMjUwY205c2JHVnlMbUYwZEdGamFFSnNiMkk9.onFQzsqBmQNfgJEGf4nVeTqaT-aniB7jZYJKafC9dnE},{name:attachFilesBlob,len:5,ns:,ver:44.0,csrf:VmpFPSxNakF5TkMweE1TMHdPVlF4TkRvMU5qb3dOeTR6TVRaYSxWb1RfWHJKLWM4clFOVTN6U3QwNmx4ZWNiNi1XdC1IWFYtSEJsZUR0dG9BPSxNak5oTTJVeg,authorization:eyJub25jZSI6IkhxaDctMlJFVXhXVGJMdVFsb29wZ0NtSWd2Mk55VGJMb0NERUVic2FWZUlcdTAwM2QiLCJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImtpZCI6IntcInRcIjpcIjAwRDBYMDAwMDAwdWFkSlwiLFwidlwiOlwiMDJHMFgwMDAwMDBZR3J1XCIsXCJhXCI6XCJ2ZnJlbW90aW5nc2lnbmluZ2tleVwiLFwidVwiOlwiMDA1MFgwMDAwMDhUdWZiXCJ9IiwiY3JpdCI6WyJpYXQiXSwiaWF0IjoxNzMwOTA0OTY3MzE2LCJleHAiOjB9.Q2k5MlptTmZSMlZ1WlhKcFkwWnBiR1ZWY0d4dllXUkRiMjUwY205c2JHVnlMbUYwZEdGamFFWnBiR1Z6UW14dllnPT0._ossy7rjbwiIvdnSb1ug2XXbk4jRmuHIHDOlBPacPtQ},{name:attachFilesBlobold,len:5,ns:,ver:44.0,csrf:VmpFPSxNakF5TkMweE1TMHdPVlF4TkRvMU5qb3dOeTR6TVRaYSxmaHgzSlVzVUp1TXdGWmh4S0dEV3NDTXFSODJxeGR3M0kzeG1JSHV0ZUJvPSxabU5sWkRNMg,authorization:eyJub25jZSI6IkpvU0ZILUNrQWM2N19vSjNvZ1hLU0RjUzVWc3dkakducm96a1pKYy00TmtcdTAwM2QiLCJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImtpZCI6IntcInRcIjpcIjAwRDBYMDAwMDAwdWFkSlwiLFwidlwiOlwiMDJHMFgwMDAwMDBZR3J1XCIsXCJhXCI6XCJ2ZnJlbW90aW5nc2lnbmluZ2tleVwiLFwidVwiOlwiMDA1MFgwMDAwMDhUdWZiXCJ9IiwiY3JpdCI6WyJpYXQiXSwiaWF0IjoxNzMwOTA0OTY3MzE2LCJleHAiOjB9.Q2pKMlptTmZSMlZ1WlhKcFkwWnBiR1ZWY0d4dllXUkRiMjUwY205c2JHVnlMbUYwZEdGamFFWnBiR1Z6UW14dlltOXNaQT09.joKvbIElE4ujLwIwZuCPI1E0DoFtdOfkakZtXBWdnsk},{name:attachFilesUpdate,len:4,ns:,ver:44.0,csrf:VmpFPSxNakF5TkMweE1TMHdPVlF4TkRvMU5qb3dOeTR6TVRaYSwwTDFBbExCbDJqU3R6OC1MVVFPa3FhWmdzdmpCNzMtVW1vYlJ1Yi1TSnBFPSxPRFZoTkRBNA,authorization:eyJub25jZSI6IlRBdFJQMG4yak5uWFI2ZmxLaG5nLVRLVl9DakxJb1VueXhBck9KTWxrRFVcdTAwM2QiLCJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImtpZCI6IntcInRcIjpcIjAwRDBYMDAwMDAwdWFkSlwiLFwidlwiOlwiMDJHMFgwMDAwMDBZR3J1XCIsXCJhXCI6XCJ2ZnJlbW90aW5nc2lnbmluZ2tleVwiLFwidVwiOlwiMDA1MFgwMDAwMDhUdWZiXCJ9IiwiY3JpdCI6WyJpYXQiXSwiaWF0IjoxNzMwOTA0OTY3MzE2LCJleHAiOjB9.Q2pGMlptTmZSMlZ1WlhKcFkwWnBiR1ZWY0d4dllXUkRiMjUwY205c2JHVnlMbUYwZEdGamFFWnBiR1Z6VlhCa1lYUmw.zxjBbGNE9-pSwYg4UFJrrVYmW7S04RVHzVRwWLDBMJs},{name:attachUpdate,len:4,ns:,ver:44.0,csrf:VmpFPSxNakF5TkMweE1TMHdPVlF4TkRvMU5qb3dOeTR6TVRaYSx4akRpWU5BeGUwQUJ0NHhrdDdwWGw4SlU1UjViNVZPbGdzLWlNUGo5S1B3PSxNREJrWldNMA,authorization:eyJub25jZSI6IkpubjlSUXlQQXFoSklYbHA0ZVdyeWJ5TW9TYWdmY0EwbGNpbU5JbFo2VU1cdTAwM2QiLCJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImtpZCI6IntcInRcIjpcIjAwRDBYMDAwMDAwdWFkSlwiLFwidlwiOlwiMDJHMFgwMDAwMDBZR3J1XCIsXCJhXCI6XCJ2ZnJlbW90aW5nc2lnbmluZ2tleVwiLFwidVwiOlwiMDA1MFgwMDAwMDhUdWZiXCJ9IiwiY3JpdCI6WyJpYXQiXSwiaWF0IjoxNzMwOTA0OTY3MzE3LCJleHAiOjB9.Q2l4MlptTmZSMlZ1WlhKcFkwWnBiR1ZWY0d4dllXUkRiMjUwY205c2JHVnlMbUYwZEdGamFGVndaR0YwWlE9PQ.wpMhEuDakCU4ybJvx99PhMHRhJ31nPP4Onmui4fh0fw},{name:deleteFile,len:1,ns:,ver:44.0,csrf:VmpFPSxNakF5TkMweE1TMHdPVlF4TkRvMU5qb3dOeTR6TVRkYSw3NGxaZ3lJa0d2ajZfSGxKZU9vMFNxVWZMYWRzMjRYcWdUeFJzRzV0eTFNPSxNVGRrTURFMg,authorization:eyJub25jZSI6InBpQ1BuX1NJcjZ2S0RFamItQ1JLR19JYzkzek1tZmZKVWJBemJpbHpRRnNcdTAwM2QiLCJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImtpZCI6IntcInRcIjpcIjAwRDBYMDAwMDAwdWFkSlwiLFwidlwiOlwiMDJHMFgwMDAwMDBZR3J1XCIsXCJhXCI6XCJ2ZnJlbW90aW5nc2lnbmluZ2tleVwiLFwidVwiOlwiMDA1MFgwMDAwMDhUdWZiXCJ9IiwiY3JpdCI6WyJpYXQiXSwiaWF0IjoxNzMwOTA0OTY3MzE3LCJleHAiOjB9.Q2lwMlptTmZSMlZ1WlhKcFkwWnBiR1ZWY0d4dllXUkRiMjUwY205c2JHVnlMbVJsYkdWMFpVWnBiR1U9.SNV33K9zbSM6k7meSm8o0EELcbBshLsfUcuoXi6toOY},prm:0}},service:apexremote}));/script>/head>script>(function(w,d,s,l,i){wlwl||;wl.push({gtm.start:new Date().getTime(),event:gtm.js});var fd.getElementsByTagName(s)0,jd.createElement(s),dll!dataLayer?&l+l:;j.asynctrue;j.srchttps://www.googletagmanager.com/gtm.js?id+i+dl;f.parentNode.insertBefore(j,f);})(window,document,script,dataLayer,GTM-TRGQZWJ);/script> script>!function(f,b,e,v,n,t,s){if(f.fbq)return;nf.fbqfunction(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbqn;n.pushn;n.loaded!0;n.version2.0;n.queue;tb.createElement(e);t.async!0;t.srcv;sb.getElementsByTagName(e)0;s.parentNode.insertBefore(t,s)}(window,document,script,https://connect.facebook.net/en_US/fbevents.js); fbq(init, 683220342545497); fbq(track, PageView);/script>noscript> img height1 srchttps://www.facebook.com/tr?id683220342545497&evPageView &noscript1 width1 />/noscript> meta contentwidthdevice-width, initial-scale1, shrink-to-fitno nameviewport /> script srchttps://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js>/script> script srchttps://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.1/moment.min.js>/script> script srchttps://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js>/script> script srchttps://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js>/script> link hrefhttps://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.1/css/select2.min.css relstylesheet prefetch /> script srchttps://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.1/js/select2.min.js>/script> link href//cdnjs.cloudflare.com/ajax/libs/jquery-form-validator/2.3.26/theme-default.min.css relstylesheet /> script srchttps://cdnjs.cloudflare.com/ajax/libs/jquery-form-validator/2.3.54/jquery.form-validator.min.js>/script> link hrefhttps://cdnjs.cloudflare.com/ajax/libs/jquery-toast-plugin/1.3.1/jquery.toast.css relstylesheet typetext/css /> script srchttps://cdnjs.cloudflare.com/ajax/libs/jquery-toast-plugin/1.3.1/jquery.toast.js>/script> link crossoriginanonymous hrefhttps://use.fontawesome.com/releases/v5.1.0/css/all.css integritysha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt relstylesheet /> script srchttps://cdn.jsdelivr.net/npm/gasparesganga-jquery-loading-overlay@2.1.5/dist/loadingoverlay.min.js>/script> script srchttps://cdnjs.cloudflare.com/ajax/libs/tempusdominus-bootstrap-4/5.0.0-alpha14/js/tempusdominus-bootstrap-4.min.js typetext/javascript>/script> link hrefhttps://cdnjs.cloudflare.com/ajax/libs/tempusdominus-bootstrap-4/5.0.0-alpha14/css/tempusdominus-bootstrap-4.min.css relstylesheet /> link hrefhttps://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.2/jquery-confirm.min.css relstylesheet typetext/css /> script srchttps://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.2/jquery-confirm.min.js>/script>span idj_id0:j_id4> link crossoriginanonymous hrefhttps://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css integritysha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm relstylesheet /> script crossoriginanonymous integritysha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl srchttps://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js>/script>/span> style> #termsAndAgreementLink { color: mediumblue; text-decoration: underline; } /* Used because of the validation.net Icons so it wont overlap */ input {padding-right: 25px!important;} html { position: relative; min-height: 100%; } label { color: #337ab7; font-weight: bold; } .bold { font-weight: bold; } .select2-rendered__match { text-decoration: underline; background-color:Yellow; color:black; } .select2-selection__rendered { line-height: 31px !important; } .select2-container .select2-selection--single { height: 38px !important; } .select2-selection__arrow { height: 34px !important; } #paymentContainer { width: 600px; height: 250px; margin: 0 auto; background-color: #fff; } #paymentIframe { border: none; width: 600px; height: 250px; } .no-padding{ padding:0px!important; } .no-padding-right{ padding-right:0px; padding-right: 0px; } .no-padding-left{ padding-left:0px; padding-right: 0px; } header { width: 100%; padding: 20px; overflow: hidden; /*position: fixed;*/ top: 0; left: 0; z-index: 999; background-color: #edf1f4; -webkit-transition: height 0.3s; -moz-transition: height 0.3s; -ms-transition: height 0.3s; -o-transition: height 0.3s; transition: height 0.3s; } header h1#logo { display: inline-block; float: left; font-family: Oswald, sans-serif; font-size: 32px; color: white; font-weight: 400; -webkit-transition: all 0.3s; -moz-transition: all 0.3s; -ms-transition: all 0.3s; -o-transition: all 0.3s; transition: all 0.3s; } body { margin-bottom: 160px; } footer { background-color: #F8F8F8; position: absolute; bottom: 0; } .form-group.has-error { position: relative; } .flag { background-size: 100% 100%; background-position: 100%; width: 25px; height: 25px; /*float: left;*/ margin-right: 12px; } .heb .form-group { float: right; padding-left: 15px; } .weird{ padding-left: 0px!important; } .applogo { text-align:center; } #dedicationModal legend { font-size: 15px; color: #31708f; font-weight: bold; } #dedicationModal label { font-weight: normal; } #dedicationModal .form-group { //margin-top:10px; margin-bottom: 5px!important } #languagePicker { font-family:lucida grande,tahoma,verdana,arial,sans-serif; font-weight:bold; display:none; } #languagePicker a { cursor: pointer!important; } @media only screen and (max-width: 600px) { #paymentContainer { width: 100%; } #paymentIframe { width: 100%; }}#isMember label{ word-break: break-all; width: 100%;}#EmploymentModal .modal-content{ width: 90%;} /style> body dirltr> noscript>iframe height0 srchttps://www.googletagmanager.com/ns.html?idGTM-TRGQZWJ styledisplay:none;visibility:hidden width0>/iframe>/noscript> header> div classcontainer clearfix applogo>img src/servlet/servlet.ImageServer?id0150X000007vd1v&oid00D0X000000uadJUAQ altLogo height145px width870px classimg-fluid /> /div> div classrow> div classcol-sm-2> div idlanguagePicker> a classlangPick>label iden-US>English/label>/a> | a classlangPick>label idiw>עברית/label>/a> /div> /div> div classcol-sm-10>/div> /div> /header> div classcontainer pageCon>span idj_id0:j_id64> form idpay-form> div classrow setup-content> legend classcontrol-label slds-text-title_caps>To join, please fill the form below/legend> div classform-group col-md-12 > label classcontrol-label forfirstName>First Name/label> input classform-control data-validationrequired hebrewNames data-validation-error-msgFirst Name is required data-validation-error-msg-hebrewNamesPlease insert First Name in Hebrew. idfirstName maxlength40 placeholderEnter first name typetext /> /div> div classform-group col-md-12 > label classcontrol-label forlastName>Last Name/label> input classform-control data-validationrequired hebrewNames data-validation-error-msgLast Name is required data-validation-error-msg-hebrewNamesPlease insert Last Name in Hebrew. idlastName maxlength50 placeholderEnter last name typetext /> /div> div classform-group col-sm-12 searchState > div classinput-group add-on idisraeliIDContainer> label classcontrol-label forisraliId>Israeli ID/label> div classinput-group add-on idisraeliIdRestriction> input classform-control searchData data-contentMust be at least 6 characters long, and contain at least one number, one uppercase and one lowercase letter. data-placementleft data-triggermanual data-validationisraeliId israeliIdLength idisraliId maxlength9 placeholderEnter Israeli ID typetext /> div classinput-group-btn> button classbtn btn-default data-contentPlease enter leading zeros if the ID is less than 9 characters. data-placementtop data-togglepopover data-triggerhover onclickreturn false>i classfa fa-info-circle>/i>/button> /div> /div> /div> /div> div classform-group col-sm-12 > label foremail>Email (Privet)/label> input classform-control searchData data-validationvalidate_email data-validation-error-msgPlease enter a valid Email address. idemail placeholderenter email typeemail /> /div> div classform-group col-sm-12 > label classform-check-label>Mobilephone/label> input classform-control data-validationcustom data-validation-error-msgPlease enter a valid Phone/Mobile - digits only. data-validation-regexp^(050|051|052|053|054|055|057|058|02|03|04|08|09|072|073|076|077|078)-?\d{7,7}$ idphone maxlength10 namephone placeholderenter Phone typetext /> /div> div classform-group col-sm-12 > label classform-check-label forCompany_Name__c>Company Name/label> input classform-control data-validationrequired data-validation-error-msgis Required Company Name idCompany_Name__c maxlength255 nameCompany_Name__c placeholderCompany Name typetext /> /div> div classform-group col-sm-12 > label classform-check-label forRole_in_Company__c>Role in Company/label> input classform-control data-validationrequired data-validation-error-msgis Required Role in Company idRole_in_Company__c maxlength255 nameRole_in_Company__c placeholderRole in Company typetext /> /div> div classform-group col-sm-12 d-none iddiploma>* Diploma is Criterions - See page /div> div classform-group col-sm-12> label>Possible Member Types/label> div classcustom-control custom-radio> input classcustom-control-input data-validationrequired data-validation-error-msgPayment type required iddefaultUnchecked namemembershipAmount typeradio value190 /> label classcustom-control-label fordefaultUnchecked>Chamber Member - 190 ₪ for one year/label> /div> div classcustom-control custom-radio> input classcustom-control-input iddefaultChecked namemembershipAmount typeradio value390 /> label classcustom-control-label fordefaultChecked>Chamber Member and Diploma - 390 ₪ for one year/label> /div> /div> div classform-group col-sm-12>I request to be a member of the Bureau of Information Technologies. /div> div classform-check col-sm-12 recurring d-none> input classform-check-input idsubscription typecheckbox /> label classform-check-label forsubscription>Yealy Recurring Donation/label> /div> div classform-check form-group col-sm-12 > label classform-check-label> input classform-check-input data-validationrequired data-validation-error-msgPlease Accept Terms & Condition to proceed idtermsAndConditions nametermsAndConditions typecheckbox />span idj_id0:j_id64:j_id65:j_id73>I have read and agree to the Terms and a href# idtermsAndAgreementLink>I have read and agree to the Terms and Conditions/a>/span> /label> /div>br/>a hrefhttps://www.sysnan.co.il/personal-certifications target_blank> * Certification in Information Systems Analysis, issued in accordance with the criteria listed on the Bureaus website on the Personal Certification Page /a>br/>** I know and I agree that the information I provided will be used for the purpose of sending information, event invitations, advertisements on behalf of the Bureau, and / or the transfer of information to the Bureaus partners for publication and information purposes.I know that at any time I can request removal from the mailing listbr/> div classcol-md-12>span idj_id0:j_id64:j_id65:j_id80> script> var fileUploadersForEachRow ; var isDoneAll false; var myUploaderInterval; var currFileUp; $(document).ready(function () { // alert(vfc_EducationEmployment); // DateTime Picker - init //$(#dtp_StartDate).datetimepicker({format: L,date: moment(new Date())}); //$(#dtp_EndDate).datetimepicker({format: L,date: moment(new Date())}); $(#dtp_StartDate).datetimepicker({ format: DD/MM/YYYY }); $(#dtp_EndDate).datetimepicker({ format: DD/MM/YYYY }); // ,date: moment(new Date()) // $(#education-employment-panel).removeClass(d-none); ///////////////////////////////////////////////////// // Employment Table & Button Events ///////////////////////////////////////////////////// $(#btnModalEmploymentSave).click(function () { var formVa $(#employment_Form); if (formVa.isValid()) { var EmploymentRowIndexFromTable $(#employmentRowIndexFromTable).val(); var place_of_Work__c $(#place_of_Work__c).val(); var start_Date__c $(#start_Date__c).val(); var end_Date__c $(#end_Date__c).val(); var role__c $(#role__c).val(); var city__c $(#modal_city__c).val(); var country__c $(#country__c).val(); var sdForData $(#dtp_StartDate).datetimepicker(viewDate).format(YYYY/MM/DD); var sdForDisplay $(#dtp_StartDate).datetimepicker(viewDate).format(DD/MM/YYYY); var edForData $(#dtp_EndDate).datetimepicker(viewDate).format(YYYY/MM/DD); var edForDisplay $(#dtp_EndDate).datetimepicker(viewDate).format(DD/MM/YYYY); if (EmploymentRowIndexFromTable ! ) { row $(#table-employment tbody).find(tr).eq(EmploymentRowIndexFromTable); //place_of_Work__c row.find(td).eq(0).attr(data-val, encodeURI(place_of_Work__c)); row.find(td).eq(0).text(place_of_Work__c); //start_Date__c row.find(td).eq(1).attr(data-val, sdForData); // start_Date__c row.find(td).eq(1).text(sdForDisplay); // end_Date__c row.find(td).eq(2).attr(data-val, edForData); // end_Date__c); row.find(td).eq(2).text(edForDisplay); //role__c row.find(td).eq(3).attr(data-val, encodeURI(role__c)); row.find(td).eq(3).text(role__c); // city__c row.find(td).eq(4).attr(data-val, encodeURI(city__c)); row.find(td).eq(4).text(city__c); //country__c row.find(td).eq(5).attr(data-val, encodeURI(country__c)); row.find(td).eq(5).text(country__c); } else { var place encodeURI($(#place_of_Work__c).val()); var role encodeURI($(#role__c).val()); var city encodeURI($(#modal_city__c).val()); var country encodeURI($(#country__c).val()); var item { Contact__c : , Place_of_Work__c : + place + , Start_Date__c : + start_Date__c + ,End_Date__c : + end_Date__c + ,End_Date__c : + end_Date__c + , Role__c : + role + ,City__c : + city + , Country__c : + country + ,Id : , sd_data : + sdForData + , ed_data : + edForData + }; console.log(item); addEmploymentRow(JSON.parse(item)); } $(#EmploymentModal).modal(toggle); } }); $(#addrowEmployment).click(function () { clearEmploymentModalForm(); $(#EmploymentModal).modal(show); }); // Iterate over JSON_Employment data and ass them to the list $().each(function (index, item) { console.log(item); // Converting date format // Start Date item.sd_data item.Start_Date__c; item.Start_Date__c moment(item.Start_Date__c).format(DD/MM/YYYY); // End Date item.ed_data item.End_Date__c; item.End_Date__c moment(item.End_Date__c).format(DD/MM/YYYY); addEmploymentRow(item); }); ///////////////////////////////////////////////////// // Education Table & Button Events ///////////////////////////////////////////////////// //btnModalExtraIMedicationCancel $(#btnModalExtraIMedicationCancel).click(function () { try { var formVa $(#education_Form); //fileUploadersForEachRowfileUploadersForEachRow.length-1.ourFilesArray.length var educationRowIndexFromTable $(#educationRowIndexFromTable).val(); var currentFileuploader null; if (educationRowIndexFromTable && educationRowIndexFromTable ! ) currentFileuploader fileUploadersForEachRoweducationRowIndexFromTable if (!currentFileuploader) { if (!fileUploadersForEachRow.includes(currFileUp) && formVa.isValid()) { // console.log(obj not in array- push) // fileUploadersForEachRow.push(currFileUp); currentFileuploader currFileUp; } } // } if (!currentFileuploader) { //if we still did not find the file uploader currentFileuploader currFileUp; } if (currentFileuploader.deleteOccured) { currentFileuploader.saveState(); currentFileuploader.saveFileState(); currentFileuploader.deleteOccured false; } } catch (e) { console.log(e) } }); $(#btnModalEducationSave).click(function () { var formVa $(#education_Form); //fileUploadersForEachRowfileUploadersForEachRow.length-1.ourFilesArray.length var educationRowIndexFromTable $(#educationRowIndexFromTable).val(); //check if fileuploader has already been initialized for this row //and look for this row in fileuploader array var currentFileuploader null; if (educationRowIndexFromTable && educationRowIndexFromTable ! ) if (typeof(fileUploaderIndex) ! undefined) currentFileuploader fileUploadersForEachRowfileUploaderIndex; else currentFileuploader fileUploadersForEachRoweducationRowIndexFromTable; //if now row was saved before // treat as new row // if (currentFileuploader null) { // currentFileuploader fileUploadersForEachRowfileUploadersForEachRow.length - 1 if (!currentFileuploader) { if (!fileUploadersForEachRow.includes(currFileUp) && formVa.isValid()) { console.log(obj not in array- push) fileUploadersForEachRow.push(currFileUp); } } // } if (!currentFileuploader) { //if we still did not find the file uploader currentFileuploader currFileUp; } if (formVa.isValid() && currentFileuploader.hasValidFilesForUpload()) { console.log(saving); currentFileuploader.saveState(); currentFileuploader.saveFileState(); var educationRowIndexFromTable $(#educationRowIndexFromTable).val(); var degree__c $(#degree__c).val(); var field_of_Study__c $(#field_of_Study__c).val(); var institution_name__c $(#institution_name__c).val(); //.replace(//g, \\); var year_of_Completion__c $(#year_of_Completion__c).val(); if (educationRowIndexFromTable ! ) { row $(#table-education tbody).find(tr).eq(educationRowIndexFromTable); // degree row.find(td).eq(0).attr(data-val, encodeURI(degree__c)); row.find(td).eq(0).text(degree__c); //field_of_Study__c row.find(td).eq(1).attr(data-val, encodeURI(field_of_Study__c)); row.find(td).eq(1).text(field_of_Study__c); // institution_name__c row.find(td).eq(2).attr(data-val, encodeURI(institution_name__c)); // encodeURI(institution_name__c) , encodeURI($(#institution_name__c).val() row.find(td).eq(2).text(institution_name__c); //year_of_Completion__c row.find(td).eq(3).attr(data-val, year_of_Completion__c); row.find(td).eq(3).text(year_of_Completion__c); } else { var degree encodeURI($(#degree__c).val()); var fieldStudy encodeURI($(#field_of_Study__c).val()); var instit encodeURI($(#institution_name__c).val()); var item { Contact__c : , Degree__c : + degree + , Field_of_Study__c : + fieldStudy + , Id : , Institution_name__c : + instit + , Year_of_Completion__c : + year_of_Completion__c + }; addEducationRow(JSON.parse(item)); } $(#myModal).modal(toggle); } else if (formVa.isValid()) { alert(עליך לטעון קובץ); } }); $(#addrowEducation).click(function () { clearModalForm(); $(#myModal).modal(show); var fcont document.getElementById(fileuploadcont); var fileuploader new FileUploader(fcont); fileuploader.initFileUploader(large, Upload Files, , false, lightskyblue); fileuploader.generateGUID(); fileuploader.saveState(); currFileUp fileuploader; }); // Iterate over Education data and ass them to the list $().each(function (index, item) { console.log(item); addEducationRow(item); }); $.formUtils.addValidator({ name: EndDateUpStartDate, validatorFunction: function (value, $el, config, language, $form) { /*if (moment(value,DD/MM/YYYY) > moment() ) { this.errorMessage date is greater than today; return false; }*/ if (moment(value, DD/MM/YYYY) moment($(#start_Date__c).val(), DD/MM/YYYY)) { this.errorMessage End Date Start Date; return false; } }, errorMessage: , errorMessageKey: badDateUpToday }); $.formUtils.addValidator({ name: futureDate, validatorFunction: function (value, $el, config, language, $form) { if (moment(value, DD/MM/YYYY) > moment()) { this.errorMessage date is greater than today; return false; } }, errorMessage: , errorMessageKey: badFutureDate }); // Add custom validation rule for year 4 digit $.formUtils.addValidator({ name: yearCompletionLength, validatorFunction: function (value, $el, config, language, $form) { if (value.length 4) { this.errorMessage 4 digit; return false; } if (value > moment().year()) { this.errorMessage year is greater than today; return false; } }, errorMessage: , errorMessageKey: badCompletionYearLength }); $(body).on(keydown, #year_of_Completion__c, function (e) { -1 ! $.inArray(e.keyCode, 46, 8, 9, 27, 13, 110, 190) || /65|67|86|88/.test(e.keyCode) && (!0 e.ctrlKey || !0 e.metaKey) || 35 e.keyCode && 40 > e.keyCode || (e.shiftKey || 48 > e.keyCode || 57 e.keyCode) && (96 > e.keyCode || 105 e.keyCode) && e.preventDefault() }); }); function clearModalForm() { $(#degree__c).val(); $(#field_of_Study__c).val(); $(#institution_name__c).val(); $(#year_of_Completion__c).val(); $(#educationRowIndexFromTable).val(); } function addEducationRow(rd) { // rd is actually a record to be inserted to the table (either from sf or newly added data var editIcon td onclickeditEducationRow(this)>i classfar fa-edit stylefont-size:24px;cursor: pointer;>/i>/td>; var trashIcon td onclickdeleteEducationRow(this)>i classfar fa-trash-alt stylefont-size:24px;cursor: pointer; >/i>/td>; console.log(rd); var generateId ; var instit (rd.Id ) ? rd.Institution_name__c : encodeURI(rd.Institution_name__c); var degree (rd.Id ) ? rd.Degree__c : encodeURI(rd.Degree__c); var fieldStudy (rd.Id ) ? rd.Field_of_Study__c : encodeURI(rd.Field_of_Study__c); // this means that we came from retrive and we already have an Id; if (rd.Id ! ) { generateId rd.Id; } if (fileUploadersForEachRow.length > 0) { generateId fileUploadersForEachRowfileUploadersForEachRow.length - 1.attachmentID; } var attachmentIcon td >i onmouseover$(this).tooltip({ html: true });$(this).tooltip(\show\); onmouseentershowuploadedFiles(\ + generateId + \) classfar fa-file stylefont-size:24px;cursor: pointer;>/i>/td>; if (rd.Id ! ) { var editIcon td>/td>; var attachmentIcon td>/td>; } // Create Education Row var newEducationRow tr>th scoperow data-education-id + generateId + data-genereteId + generateId + >#/th>td data-val + degree + > + decodeURI(rd.Degree__c) + /td>td data-val + fieldStudy + > + decodeURI(rd.Field_of_Study__c) + /td>td data-val + instit + > + decodeURI(rd.Institution_name__c) + /td>td data-val + rd.Year_of_Completion__c + > + rd.Year_of_Completion__c + /td> + attachmentIcon + editIcon + trashIcon + /tr>; console.log(generateId); console.log(newEducationRow); //console.log(ourFilesArray0.generatedId); $(#educationTbody).append(newEducationRow); } function showuploadedFiles(attachmentID) { if ($(event.target.tagName icon)) { // $(event.target).tooltip(hide) $(event.target).attr(title, ); // if ($(event.target).attr(title) ) { var fileuploader fileUploadersForEachRow.filter(function (x) { return x.attachmentID attachmentID })0; var allFilesString ; fileuploader.uploadedFiles.forEach(function (elem) { allFilesString + elem.name + /br>; }); // $(event.target).attr(title, allFilesString); $(event.target).attr(data-original-title, allFilesString) $(event.target).tooltip({ html: true }); $(event.target).trigger(onmouseover); $(event.target).trigger(onmouseover); // $(event.target).tooltip(show); // } } } function deleteEducationRow(x) { rowIndex $(x).parent().index(); row $(#table-education tbody).find(tr).eq(rowIndex); var educationId row.find(th).eq(0).attr(data-education-id); // text(); if (confirm(האם אתה בטוח שברצונך למחוק את הרשומה?)) { if (educationId ! && (educationId.length 18 || educationId.length 15)) { try { Visualforce.remoting.Manager.invokeAction( vf_MembershipRegistrationController.deleteEducation, educationId, function (result, event) { if (event.status) { console.log(Remoting Success : + result); var educdelJSON $.parseJSON(result); alert(educdelJSON); } else { console.log(ERRRRRRRO); console.log(event); //TODO - toast message } }, { escape: false }); } catch (exp) { alert(exp); } } //alert(educationId); row.remove(); } else { // alert(not delete); } } function editEducationRow(x) { rowIndex $(x).parent().index(); row $(#table-education tbody).find(tr).eq(rowIndex); var degree__c decodeURI(row.find(td).eq(0).attr(data-val)); var field_of_Study__c decodeURI(row.find(td).eq(1).attr(data-val)); var institution_name__c decodeURI(row.find(td).eq(2).attr(data-val)); var year_of_Completion__c decodeURI(row.find(td).eq(3).attr(data-val)); $(#degree__c).val(degree__c); $(#field_of_Study__c).val(field_of_Study__c); $(#institution_name__c).val(institution_name__c); $(#year_of_Completion__c).val(year_of_Completion__c); $(#educationRowIndexFromTable).val(rowIndex); console.log(row.find(th).eq(0).text()); var attachmentID $($(row).children()0).data(education-id); var allEditIcons $(.fa-edit); window.fileUploaderIndex rowIndex; for (let p 0; p allEditIcons.length; p++) { if (event.target allEditIconsp) { fileUploaderIndex p; } } var fileuploader fileUploadersForEachRowfileUploaderIndex; if (fileuploader) { fileuploader.retoreHTMLState(); fileuploader.initializeFileUploadComponentAfterHtmlIsSet(); currFileUp fileuploader; } else { try { fileuploader fileUploadersForEachRow0; fileuploader.retoreHTMLState(); fileuploader.initializeFileUploadComponentAfterHtmlIsSet(); } catch (err) { console.log(err) } } $(#myModal).modal(show); } function clearEmploymentModalForm() { $(#place_of_Work__c).val(); $(#start_Date__c).val(); $(#end_Date__c).val(); $(#role__c).val(); $(#modal_city__c).val(); $(#country__c).val(); $(#employmentRowIndexFromTable).val(); } function addEmploymentRow(rd) { // rd is actually a record to be inserted to the table (either from sf or newly added data var editIcon td onclickeditEmploymentRow(this)>i classfar fa-edit stylefont-size:24px;cursor: pointer;>/i>/td>; var trashIcon td onclickdeleteEmploymentRow(this)>i classfar fa-trash-alt stylefont-size:24px;cursor: pointer; >/i>/td>; console.log(bitya rd); console.log(rd); // Create Education Row /* var startarrrd.Start_Date__c.split(-); var endarrrd.End_Date__c.split(-); var startdstartarr2+ / +startarr1+ / +startarr0; var enddendarr2+ / +endarr1+ / +endarr0;*/ var place (rd.Id ) ? rd.Place_of_Work__c : encodeURI(rd.Place_of_Work__c); var role (rd.Id ) ? rd.Role__c : encodeURI(rd.Role__c); var city (rd.Id ) ? rd.City__c : encodeURI(rd.City__c); var country (rd.Id ) ? rd.Country__c : encodeURI(rd.Country__c); if (rd.Id ! ) { var editIcon td>/td>; } var newEmploymentRow tr>th scoperow data-employment-id + rd.Id + >#/th>td data-val + rd.Place_of_Work__c + > + decodeURI(rd.Place_of_Work__c) + /td>td data-val + rd.sd_data + > + rd.Start_Date__c + /td>td data-val + rd.ed_data + > + rd.End_Date__c + /td>td data-val + rd.Role__c + > + decodeURI(rd.Role__c) + /td>td data-val + rd.City__c + > + decodeURI(rd.City__c) + /td>td data-val + rd.Country__c + > + decodeURI(rd.Country__c) + /td> + editIcon + trashIcon + /tr>; $(#employmentTbody).append(newEmploymentRow); } function deleteEmploymentRow(x) { rowIndex $(x).parent().index(); row $(#table-employment tbody).find(tr).eq(rowIndex); var employmentId row.find(th).eq(0).attr(data-employment-id); // text(); if (confirm(Are you sure you want to delete this row?)) { if (employmentId ! ) { try { Visualforce.remoting.Manager.invokeAction( vf_MembershipRegistrationController.deleteEmployment, employmentId, function (result, event) { if (event.status) { console.log(Remoting Success : + result); } else { console.log(ERRRRRRRO); console.log(event); //TODO - toast message } }, { escape: false }); } catch (exp) { alert(exp); } } // alert(employmentId); row.remove(); } else { // alert(not delete); } } function editEmploymentRow(x) { rowIndex $(x).parent().index(); row $(#table-employment tbody).find(tr).eq(rowIndex); var place_of_Work__c decodeURI(row.find(td).eq(0).attr(data-val)); var start_Date__c row.find(td).eq(1).attr(data-val); var end_Date__c row.find(td).eq(2).attr(data-val); var role__c decodeURI(row.find(td).eq(3).attr(data-val)); var city__c decodeURI(row.find(td).eq(3).attr(data-val)); var country__c decodeURI(row.find(td).eq(3).attr(data-val)); $(#place_of_Work__c).val(place_of_Work__c); // set value to datetime picker $(#dtp_StartDate).datetimepicker(date, moment(start_Date__c)); $(#dtp_EndDate).datetimepicker(date, moment(end_Date__c)); $(#role__c).val(role__c); $(#modal_city__c).val(city__c); $(#country__c).val(country__c); $(#employmentRowIndexFromTable).val(rowIndex); console.log(row.find(th).eq(0).text()); $(#EmploymentModal).modal(show); } function saveEmploymentEducation(contactId, clearanceURL) { // TODO loop on the the education table , collect the data-val attribute from each td for each row var EmploymentDetailInfoArray ; var EducationDetailInfoArray ; ///////////////////////////////////////////////////////////////////////////// // Prepare Education List ////////////////////////////////////////////////////////////////////////////// function EducationObject(degree__c, field_of_Study__c, institution_name__c, year_of_Completion__c, educationId, contactId) { var undefined; this.degree__c degree__c; this.field_of_Study__c field_of_Study__c; this.institution_name__c institution_name__c; this.year_of_Completion__c year_of_Completion__c; if (educationId ! ) // new row this.ID educationId; this.Contact__c contactId; } ///////////////////////////////////////////////////////////////////////////// // Prepare Employment List ////////////////////////////////////////////////////////////////////////////// function EmploymentObject(place_of_Work__c, start_Date__c, end_Date__c, role__c, city__c, country__c, employmentId, contactId) { // var undefined; this.Contact__c contactId; this.place_of_Work__c place_of_Work__c; this.start_Date__c normalizeDate(moment(start_Date__c)).valueOf(); this.end_Date__c normalizeDate(moment(end_Date__c)).valueOf(); this.role__c role__c; this.city__c city__c; this.country__c country__c; if (employmentId ! ) // new row this.ID employmentId; // } $(#table-employment > tbody > tr).each(function () { // var ddlval $(this).find(td).eq(2).find(select option:selected).text(); // var place_of_Work__c decodeURI($(this).find(td).eq(0).attr(data-val)); var start_Date__c $(this).find(td).eq(1).attr(data-val); var end_Date__c $(this).find(td).eq(2).attr(data-val); var role__c decodeURI($(this).find(td).eq(3).attr(data-val)); var city__c decodeURI($(this).find(td).eq(4).attr(data-val)); var country__c decodeURI($(this).find(td).eq(5).attr(data-val)); var employmentId $(this).find(th).eq(0).attr(data-employment-id); //alert(TextBox text is +employmentId ); EmploymentDetailInfoArray.push(new EmploymentObject(place_of_Work__c, start_Date__c, end_Date__c, role__c, city__c, country__c, employmentId, contactId)); }); // TODO loop on the the education table , collect the data-val attribute from each td for each row $(#table-education > tbody > tr).each(function () { var degree__c $(this).find(td).eq(0).attr(data-val); // var ddlval $(this).find(td).eq(2).find(select option:selected).text(); var degree__c decodeURI($(this).find(td).eq(0).attr(data-val)); var field_of_Study__c decodeURI($(this).find(td).eq(1).attr(data-val)); var institution_name__c decodeURI($(this).find(td).eq(2).attr(data-val)); var year_of_Completion__c $(this).find(td).eq(3).attr(data-val); var educationId $(this).find(th).eq(0).attr(data-education-id); //alert(TextBox text is +educationId ); EducationDetailInfoArray.push(new EducationObject(degree__c, field_of_Study__c, institution_name__c, year_of_Completion__c, educationId, contactId)); }); console.log(arrays); console.log(EmploymentDetailInfoArray); console.log(EducationDetailInfoArray); try { $(#pay-form).LoadingOverlay(show); Visualforce.remoting.Manager.invokeAction( vf_MembershipRegistrationController.upsertEducationEmploymentObject, EducationDetailInfoArray, EmploymentDetailInfoArray, pageLanguage, function (result, event) { $(#pay-form).LoadingOverlay(hide, true); if (event.status) { console.log(Remoting Success : + result); console.log(fileUploadersForEachRow); var educMapJSON $.parseJSON(result); //for generatedId startUploadFiles(educMapJSON, 0); //call transila //continueToPayment(clearanceURL); } else { console.log(ERRRRRRRO); console.log(event); //TODO - toast message } }, { escape: false }); } catch (exp) { alert(exp); } } function startUploadFiles(educMapJSON, i) { if (myUploaderInterval null) { myUploaderInterval setInterval(function () { console.log(ed start upload + i) if (i fileUploadersForEachRow.length) { var f fileUploadersForEachRowi; if (f.status ready) { f.attachmentID educMapJSONf.attachmentID; f.startUpload(true); console.log(ed finish upload + i); } else if (f.status done) { i i + 1; console.log(in settimout); startUploadFiles(educMapJSON, i); } } else { clearInterval(myUploaderInterval); } }, 1000); } } function recieveFilesGeneratedIds(filesArray) { // generate id for education row var generatedIdForEducationRow uuidv4(); for (var i 0, f; f filesArrayi; i++) { f.generatedId generatedIdForEducationRow; } console.log(filesArray); console.log(filesArray); } /script> div classd-none ideducation-employment-panel> table classtable table-sm idtable-education> thead classthead-dark> tr> th colspan8 styletext-align: right; background-color: silver; color:blue;> השכלה /th> /tr> tr> th scopecol>#/th> th scopecol>Degree/th> th scopecol>Field of Study/th> th scopecol>Institution name/th> th scopecol>Year of Completion/th> th scopecol> /th> th scopecol> /th> th scopecol> /th> /tr> /thead> tbody ideducationTbody> /tbody> tfoot> tr> td colspan8 styletext-align: left;> input classbtn idaddrowEducation typebutton valueAdd Education Row /> /td> /tr> tr> /tr> /tfoot> /table> br /> table classtable table-sm idtable-employment> thead classthead-dark> tr> th colspan9 styletext-align: right; background-color: silver; color:blue;> היסטוריה תעסוקתית /th> /tr> tr> th scopecol>#/th> th scopecol>Place of Work/th> th scopecol>Start Date/th> th scopecol>End Date/th> th scopecol>Role/th> th scopecol>City/th> th scopecol>Country/th> th scopecol> /th> th scopecol> /th> /tr> /thead> tbody idemploymentTbody> /tbody> tfoot> tr> td colspan9 styletext-align: left;> input classbtn idaddrowEmployment typebutton valueAdd Employment Row /> /td> /tr> tr> /tr> /tfoot> /table> br /> div classmodal data-backdropstatic data-keyboardfalse idmyModal> div classmodal-dialog> div classmodal-content> div classmodal-header> h4 classmodal-title>Education/h4> button classclose data-dismissmodal typebutton>×/button> /div> div classmodal-body ideducmodal> form idddd>/form> form ideducation_Form> div classform-group col-md-12 > label classcontrol-label fordegree__c>Degree/label> input classform-control data-validationrequired data-validation-error-msgDegree is Required iddegree__c maxlength255 placeholderenter Degree typetext /> /div> div classform-group col-md-12 > label classcontrol-label forfield_of_Study__c>Field of Study/label> input classform-control data-validationrequired data-validation-error-msgField of Study is Required idfield_of_Study__c maxlength255 placeholderenter Field of Study typetext /> /div> div classform-group col-md-12 > label classcontrol-label forinstitution_name__c>Institution name/label> input classform-control data-validationrequired data-validation-error-msgInstitution name is Required idinstitution_name__c maxlength255 placeholderenter Institution name typetext /> /div> div classform-group col-md-12 > label classcontrol-label foryear_of_Completion__c>Year of Completion/label> input classform-control data-validationrequired yearCompletionLength data-validation-error-msg-requiredYear of Completion is Required idyear_of_Completion__c maxlength4 placeholderenter Year of Completion typetext /> /div> input ideducationRowIndexFromTable typehidden /> div idfileuploadcont> /div>span idj_id0:j_id64:j_id65:j_id80:j_id81:j_id83> link hrefhttps://fonts.googleapis.com/icon?familyMaterial+Icons relstylesheet> script srchttps://cdnjs.cloudflare.com/ajax/libs/bluebird/3.3.4/bluebird.min.js>/script> /link> style> /* .colStyle1{width:260px}.colStyle2{width:60px;text-align:right}.colStyle3{width:60px;text-align:left}.data2Col{text-align:center!important}.errorLine{color:red}.fileUpload{position:relative;overflow:hidden}.fileUpload input.upload{position:absolute;top:0;right:0;margin:0;padding:0;font-size:14px;cursor:pointer;opacity:0;filter:alpha(opacity0)}#uploadFile{padding:6px 10px;font-size:14px;color:#666;border:1px solid #D8D8D8;font-family:inherit}#filedrag{display:block;padding:60px 0;background:#fff;border:2px dashed #c2cdda;border-radius:3px;text-align:center;-webkit-transition:background-color .2s ease;transition:background-color .2s ease} .upload{background-color:#C2E8FF;border:1px solid #CACACA;border-radius:3px;margin:5px auto;padding:4px;width:98%;height:40px;opacity:.5;position:relative}.statusBar,.upload-cont{position:absolute;top:0;left:0}.statusBar{background:#C2E8FF;border:1px solid #EAEAEA;height:100%;width:100%}.statusBarPercent{background-color:#428bca;float:left;height:100%;max-width:100%}.upload-cont{z-index:10}data-statuscomplete{background-color:#5cb85c!important}#myButton{background-color:#428bca!important}#uploadSuccess{display:none}*/ #filedrag { padding: 1rem 1rem 1rem 1rem; position: relative; display: block; border: 2px dashed lightgrey; border-radius: 0.3em; text-align: center; margin: 0px auto; overflow: auto; } .modal-bottom { position: fixed; top: auto; right: auto; left: auto; bottom: 0; } #filedrag.hover { background: #D8D8D8; border-color: #f0f0f0 } ; #filupload h1 { margin-top: 22%; } .uploader_tiny { padding: 0.2rem 0.2rem 0.2rem 0.2rem !important; border: 1px dashed lightgrey !important; width: 100px !important; height: 100px !important; } .uploader_small { padding: 0.4rem 0.4rem 0.4rem 0.4rem !important; border: 2px dashed lightgrey !important; width: 150px !important; height: 150px !important; } .uploader_small h1 { font-size: 10px; } .uploader_small h1 { font-size: 14px; } .uploader_medium h1 { font-size: 16px; width: 100%; height: 100%; } .uploader_large h1 { font-size: 22px; width: 100%; height: 100%; } .upload-cont { float: right; font-size: 14px; width: 100%; } .upload-cont .material-icons { float: right; font-size: 14px; } .errmsg { color: darkred; font-size: 10px !important; } /style> script typetext/javascript> //INIT function FileUploader(container) { var _this this; this.dataIndex 0; var maxFileSizeMessage arguments.length > 1 && arguments1 ! undefined ? arguments1 : Up to 5MB allowed; var instructionsMessage arguments.length > 2 && arguments2 ! undefined ? arguments2 : Darg and drop files here; var customMessageArray arguments.length > 3 && arguments3 ! undefined ? arguments3 : ; var self this; this.cleanHTML \n div class\fileuploaderplugin\> div> div> div> div> div class\uploadBox\> table cellpadding\0\ cellspacing\0\ class\uploadTable\ style\width:100%\ border0> tr> td class\buttonTD\ align\left\ style\width:50%\> /td>td id\bigfileSection\ style\width:50%\> div class\bootstrap-iso\> input id\uploadFile\ type\text\ disabled\disabled\ placeholder\File Name\/> div class\fileUpload\> span>Label.Upload_Choose_Big_File/span> input type\file\ value\\ filename\\ filesize\\ id\standardFile\ styleclass\upload\/> /div>div class\fileUpload btn btn-default\ style\background:#428bca \> span>Upload/span> button value\Upload\ onClick\return handleClick()\ styleclass\upload\>/button> /div>/div>/td>/tr>/table> /div>div id\filedrag\> h1 class\msg filedrag-cont\>/h1> i class\material-icons filedrag-cont\>cloud_upload/i> input type\file\ class\filedrag-cont\ multiple\true\ id\filesInput\ name\file\ style\visibility:hidden;width:0px; height:0px\/> div class\bootstrap-iso filedrag-cont\> div class\fileUpload\> span class\filedrag-cont\>.concat(instructionsMessage, /span> input id\myButton\ type\button\ title\mybrowse\ class\upload\ value\choose file\/> /div>span class\label\ style\padding: 9px 10px; font-size:12px; color:red\>).concat(maxFileSizeMessage, /span> /div>/div>div id\info\>/div>div class\standartUpload\> div title\Upload a File\> input type\file\ id\standardFile\/> button value\Upload\ onClick\return handleClick()\>/button> /div>div id\spinner\ style\display:none\> div class\slds-scope\> div class\slds-spinner_container slds-is-fixed\> div role\status\ class\slds-spinner slds-spinner--medium\> span class\slds-assistive-text\>Loading/span> div class\slds-spinner__dot-a\>/div>div class\slds-spinner__dot-b\>/div>/div>/div>/div>/div>/div>/div>/div>/div>/div>\n ); if ($(#uploadmodal).length 0) { var modalHTML \n div class\modal\ tabindex\-1\ role\dialog\ data-backdrop\static\ data-keyboard\false\ id\uploadmodal\> div class\modal-dialog modal-dialog-centered\ role\document\> div class\modal-content\> div class\modal-header\> h5 class\modal-title\>please wait while uploading/h5> span class\minimize\ >i class\fa fa-window-minimize\ aria-hidden\true\>/i> /span> /div>div class\modal-body uploadbody\> /div>/div>/div>/div>\n ; $(body).append(modalHTML); $(.minimize).click(function () { $(.modal-body).slideToggle(); if ($(#uploadmodal).hasClass(modal-bottom)) { $(#uploadmodal).removeClass(modal-bottom); } else { $(#uploadmodal).addClass(modal-bottom); } }); } $(container).html(this.cleanHTML); // Init globals file upload variables this.files null; this.reader null; this.status ready; this.ronenAbort false; // aborts one file only this.ourFilesArray ; // Will hold the files that we dragging this.currentFile; this.filesUploadingProccessing false; // Status whether we are in the middle of uploading files or we completed this.badFiles ; this.byteChunkArray; this.maxStringSize 6000000; // Maximum String size is 6,000,000 characters this.maxFileSize 4427776; // After Base64 Encoding, this is the max file size 4350000 this.CHUNK_SIZE 180000; //Must be evenly divisible by 3, if not, data corruption will occur this.$upload; this.VIEW_URL /servlet/servlet.FileDownload?file; //var self.attachmentID ; // should be set by the user //testing only this.PrefixFileName ; this.Description my file; this.Isprivate false; this.JSAllUploadCompleted completedUploads; this.JavascriptCallbackDeleteFunction completeDelete; this.MaxSizeAllowed ; this.customMessageArray new Array(); this.CustomLabelMessage new Object(); this.arrayAtachId new Array(); //use cusom messgaes this.createCustomeLabelMessage function (name, msg) { this.CustomLabelMessagename msg; }; // //set the custom messages //if we did not get custom messages use the default if (customMessageArray.length 0) { this.customMessageArray { name: File_Empty_Error, msg: File empty }, { name: File_too_big_Error, msg: File too big }, { name: Upload_Error, msg: Upload error. please try again }, { name: Delete_Uploaded_File, msg: Delete uploaded file? }; } else { this.customMessageArray customMessageArray; } this.customMessageArray.forEach(function (msg) { self.createCustomeLabelMessage(msg.name, msg.msg); }); //var self.attachmentID, you will see this variable used below but it is set in the component as this is a dynamic value passed in by component attribute //var $ jQuery.noConflict(); // /* Hnadle file input click */ // this.handleClick function () { var standardFileid $(id*standardFile).attr(id); var standardFileSize $(id*standardFile)0.files0.size; var standardFileVal document.getElementById(standardFileid).value; // Dont send to upload if file is empty if (standardFileVal ! ) { if (standardFileSize parseInt(MaxSizeAllowed)) // 25 Mega 26214400 { // overlay sample css - backgroundColor: #FFFFFF, opacity: 0.6, border: 1px solid #000000 $.blockUI.defaults.css {}; // clears all defaults for message $(.standartUpload).block({ message: table>tr>td> + img src/img/loading32.gif/>/td>/tr>/table>, css: {}, overlayCSS: {} }); $(.uploadBox).block({ message: table>tr>td> + img src/img/loading32.gif/>/td>/tr>/table>, css: {}, overlayCSS: {} }); return true; } else { alert(File size must be less than + (parseInt(MaxSizeAllowed) / 1000000).toFixed(2) + MB); } } return false; }; // //Internal init of file uploader this.initializeFileUploadComponentAfterHtmlIsSet function () { $(window).on(unload, function () { }); // Using this event to check if we leaving the page in the middle of uploading, so need to delete the uploaded file $(window).bind(beforeunload, function () { var info ; var sfrecordID ; if (self.filesUploadingProccessing) { var $processingFileIndex -1; var $processing $(.upload:firstdata-statusprocessing); if ($processing.length > 0) { $processingFileIndex $processing.attr(data-index); info + $processingFileIndex: + $processingFileIndex; info + $processing.length: + $processing.length; if ($processingFileIndex > -1) { // get file id sfrecordID $processing.attr(data-fileId); info + sfrecordID: + sfrecordID; if (sfrecordID ! ) { vfc_GenericFileUploadController.deleteFile(sfrecordID, function (result, event) { if (event.status true) {//alert(result); console.log(delete); console.log(result); } else { } }); } } } //return ×§×™×™× ×§×•×‘×¥ ×‘×˜×¢×™× ×”, ×”× × ×œ×¦× ×ª בכל ×–× ×ª?; } //return null ; }); // Hide or Show the Upload button for uploading big files - (getting the parameter from the component) $(#bigfileSection).css(display, showBigFile ? block : none); $(#filedrag).on(dragenter dragover dragleave, function (e) { //; e.stopPropagation(); e.preventDefault(); //alert(e.target + : + e.type); //e.target.attr(class, (e.type dragover ? hover : )); // $(this).addClass((e.type dragover ? hover : )); if (e.type dragover) { $(this).addClass(hover); } else { $(this).removeClass(hover); } }); // prepare for dropping files after deagging //electing files from button $(#filesInput).on(change, function (e) { self.files e.target.files; for (var i 0, f; f self.filesi; i++) { self.ourFilesArray.push(f); } // Spinner //$(#spinner).show(); // ; self.prepareFileUploads(); $(#filesInput).replaceWith($(#filesInput).clone(true)); }); // button for standard $(#myStandardButton).click(function () { ; var undefined; var standardFileid $(id*standardFile).attr(id); var standardFileInput document.getElementById(standardFileid); //$(#file).replaceWith($(#file).clone()); if ($(standardFileInput).data(events) undefined) { $(standardFileInput).on(change, function (e) {//alert(Change - Files lengthL ); //alert($(standardFileInput).data(events) + standardFileInput.value: + standardFileInput.value + $(standardFileInput).val: + $(standardFileInput).val()); //alert(e.target.files); //$(id*standardUploadButton).trigger(click); //alert($(id*standardUploadButton).attr(id)); //$(standardFileInput).off(change); }); } //$(id*standardFile).trigger(click); standardFileInput.click(); }); // button for html5 $(#myButton).click(function () { ; $(#filesInput).click(); }); //Event listener to clear upload details/status bars once upload is complete $(#clear).on(click, function () { $(.upload).remove(); }); var filedrag $(#filedrag); ; if (typeof window.FileReader undefined) { //alert(HTML 5 File api not supported); $(.uploadBox).hide(); $(#filedrag).hide(); // ����� ��� ���� 5 ��� ����� ���� ����� ����� ����� ����� ������� ������ ����� ����� ���� } else { $(.standartUpload).hide(); //filedrag.css( display,block); $(#filedrag).css(display, showDropZone true ? block : none); } $(#filedrag).on(drop, function (e) { e.stopPropagation(); e.preventDefault(); if (e.type dragover) { $(this).addClass(hover); } else { $(this).removeClass(hover); } //Now we need to get the files that were dropped //The normal method would be to use event.dataTransfer.files //but as jquery creates its own event object you ave to access //the browser even through originalEvent. which looks like this self.files e.originalEvent.dataTransfer.files; for (var i 0, f; f self.filesi; i++) { self.ourFilesArray.push(f); } ////////////////////////////////////////////////////////////////////// if (typeof windowrecieveFilesGeneratedIds function) { windowrecieveFilesGeneratedIds(self.ourFilesArray); } // showWin(); self.prepareFileUploads(); }); /*if (typeof (windowJSAllUploadCompleted) function && ! ) { windowJSAllUploadCompleted(); }*/ /* if (typeof (windowJavascriptCallbackDeleteFunction) function && ! ) { windowJavascriptCallbackDeleteFunction(); }*/ var standardFileid $(id*standardFile).attr(id); var standardFileInput document.getElementById(standardFileid); standardFileInput.onchange function () { document.getElementById(uploadFile).value this.value; }; }; // // Internal functions for error handling and upload status updates this.errorHandler function (evt) { switch (evt.target.error.code) { case evt.target.error.NOT_FOUND_ERR: alert(File Not Found!); break; case evt.target.error.NOT_READABLE_ERR: alert(File is not readable); break; case evt.target.error.ABORT_ERR: break; // noop default: alert(An error occurred reading this file.); } ; }; this.updateProgress function (evt) { if (evt.lengthComputable) { console.log(evt); //OutputInfo(evt.loaded + : + evt.total); // evt.loaded and evt.total are ProgressEvent properties //ronenAbort true; var loaded evt.loaded / evt.total; if (loaded 1) {// Increase the prog bar length //style.width (loaded * 200) + px; } } }; this.OutputInfo function (msg) { var m $(#info); m.append(msg); }; this.ParseFile function (file) { Output(p>File information: strong> + file.name + /strong> type: strong> + file.type + /strong> size: strong> + file.size + /strong> bytes/p>); }; // file drag hover this.FileDragHover function (e) { e.stopPropagation(); e.preventDefault(); //alert(e.target : + e.type); //e.target.className (e.type dragover ? hover : ); e.target.attr(class, e.type dragover ? hover : ); }; //Executes when start Upload button is selected this.prepareFileUploads function () { //Only proceed if there are files selected if (self.files.length 0) { alert(Please select a file!); return; //end function } // Exspose an object to hold index , file name , attachmentId self.outerDAIobjectArray ; //Disable inputs and buttons during the upload process //$(.uploadBox input).attr(disabled, disabled); // Need to check what it does (not working on IE) /*$(.uploadBox button).attr({ disabled: disabled, class: btnDisabled });*/ //Build out the upload divs for each file selected for (var i 0; i self.files.length; i++) { var uploadMarkup ; var data_status pending; // keep the status of the file only when building the string var additionalUploadClass ; // adding class to upload div var title Delete uploaded file; // show error on upload div title var fileErrorMessage ; // label inside upload div to show error var loadingStatusDisplay ; var uploadDivIconName i class\tiny material-icons\>delete/i>; // defaut - delete icon - show delete or exclamation mark according to file //Determine file display size if (self.filesi.size 1000000) { var displaySize Math.floor(self.filesi.size / 1000) + K; } else { var displaySize Math.round(self.filesi.size / 1000000 * 10) / 10 + MB; } // the position of the file in the div var dataIndex self.dataIndex; // var dataIndex self.ourFilesArray.length - self.files.length + i; //alert(ourFilesArray.length : + ourFilesArray.length + dataIndex: + dataIndex); // Check for file size 1 - size of 0 bytes , 2 - size greater then our limit //alert (filesi.size); // Ronen Slifkin 01/03/2015 Comment this cause with remoteFunction max size is absolute - about 4.2Mega //maxFileSize (MaxSizeAllowed ) ? maxFileSize : MaxSizeAllowed; if (self.filesi.size > self.maxFileSize) { data_status error; additionalUploadClass uploadError; title this.CustomLabelMessageFile_too_big_Error; fileErrorMessage this.CustomLabelMessageFile_too_big_Error; //uploadDivIconName https://cs7.salesforce.com/resource/1390309412000/ExclamationIcon; uploadDivIconName i class\tiny material-icons\>error/i>; loadingStatusDisplay none; self.badFiles.push(self.filesi); } if (this.filesi.size 0) { data_status error; additionalUploadClass uploadError; title this.CustomLabelMessageFile_Empty_Error; fileErrorMessage this.CustomLabelMessageFile_Empty_Error; //alert(ggggggggggg: + CustomLabelMessageFile_too_big_Error); uploadDivIconName i class\tiny material-icons\>error/i>; loadingStatusDisplay none; self.badFiles.push(self.filesi); } //For each file being uploaded create a div to represent that file, includes file size, status bar, etc. data-Status tracks status of upload if (data_status ! error) uploadMarkup + div classupload + additionalUploadClass + data-status + data_status + data-filename + self.filesi.name + data-fileId data-index + dataIndex + title + >; //index used to correspond these upload boxes to records in the files array else uploadMarkup + div classupload + additionalUploadClass + data-status + data_status + data-filename + self.filesi.name + data-fileId title + >; //index used to correspond these upload boxes to records in the files array uploadMarkup + div classupload-cont>; uploadMarkup + span classfileName>; uploadMarkup + span classname> + self.filesi.name + /span>span> - ( + displaySize + ) /span> ; uploadMarkup + span classpercentComplete uploadcircle>0%/span>; uploadMarkup + ; //uploadMarkup + img iduploadSuccess src/img/loading32.gif stylewidth:16px;height:16px;display: + loadingStatusDisplay + />; uploadMarkup + i tiny classmaterial-icons>attach_file/i>; uploadMarkup + ; uploadMarkup + span classfileErrorMessage> + fileErrorMessage + /span>; uploadMarkup + /span>; if (data_status ! error) { uploadMarkup + span data-file + self.filesi.name + idfileDelete + dataIndex + classfileDelete stylefloat:right;margin-left:5px>a href# > + uploadDivIconName + /a>/span> ; // ronen uploadMarkup + span classstatusBar stylefloat:right;>span classstatusBarPercent/>/span>/span>; } else { uploadMarkup + div data-file + self.filesi.name + classfileDelete stylefloat:right;margin-left:5px> + uploadDivIconName + /div> ; // ronen } uploadMarkup + /div>; ///img/content/contribute16.png // for debug purpose //uploadMarkup + div classclear/>; //uploadMarkup + span data-index + dataIndex +>/span>; uploadMarkup + /div>; $(container).find(#filedrag).append(uploadMarkup); $(.upload-cont).each(function () { if ($(this).html().indexOf(self.CustomLabelMessageFile_too_big_Error) ! -1) { $(this).addClass(errmsg); } }); //attach events var outerDAIobject {}; outerDAIobject.FileName self.filesi.name; outerDAIobject.Index i; outerDAIobject.dataIndex dataIndex; outerDAIobject.AttachmentId ; self.outerDAIobjectArray.push(outerDAIobject); self.dataIndex++; } self.setDeleteIconAction(); //Add markup to the upload box //$(.uploadBox).append(uploadMarkup); //OutputInfo(filesUploadingProccessing ? filesUploadingProccessing : true : filesUploadingProccessing : false); //Once elements have been added to the page representing the uploads, start the actual upload process // if (!filesUploadingProccessing) { // checkForUploads(); // } }; this.setDeleteIconAction function () { $(.fileDelete).click(function () { if ($(this).is(:visible)) { var dataIndex $(this).attr(id); dataIndex parseInt(dataIndex.replace(fileDelete, )); self.uploadedFiles self.uploadedFiles.filter(x > x.name ! $(this).data(file)); self.ourFilesArray self.ourFilesArray.filter(x > x.name ! $(this).data(file)); self.cancelUpload(dataIndex); console.log(deleteeee); console.log(dataIndex); self.deleteOccured true; } }); } this.cancelUpload function (divCounter) { // Getting the Id of the file from the server var contentDocumentID $(.uploaddata-index + divCounter + ).attr(data-fileId); var uploadStatus $(.uploaddata-index + divCounter + ).attr(data-status); $(#filedrag).LoadingOverlay(show); switch (uploadStatus) { case processing: self.ronenAbort true; break; case error: // check whether contentDocumentID present if (contentDocumentID ! ) { vfc_GenericFileUploadController.deleteFile(contentDocumentID, function (result, event) { if (event.status true) { alert(Delete : + result); } else { OutputInfo(delete failed); } $(.uploaddata-index + divCounter + ).hide(); $(#filedrag).LoadingOverlay(hide, true); }); } else { $(.uploaddata-index + divCounter + ).hide(); $(#filedrag).LoadingOverlay(hide, true); } break; case complete: self.$upload.attr(data-status, deleted); // delete file from salesforce if exists vfc_GenericFileUploadController.deleteFile(contentDocumentID, function (result, event) { if (event.status true) { if (result) // if delete successed { // Since its name is being dynamically generated, always ensure your function actually exists if (typeof windowJavascriptCallbackDeleteFunction function) { windowJavascriptCallbackDeleteFunction(contentDocumentID); } } $(.uploaddata-index + divCounter + ).hide(); } else { OutputInfo(delete failed); } $(#filedrag).LoadingOverlay(hide, true); }); break; case pending: $(.uploaddata-index + divCounter + ).attr(data-status, deleted); $(.uploaddata-index + divCounter + ).hide(); $(#filedrag).LoadingOverlay(hide, true); break; case deleted: self.ronenAbort true; //alert(deleted) $(.uploaddata-index + divCounter + ).hide(); $(#filedrag).LoadingOverlay(hide, true); break; default: // unknown upload status, need to check why ?????????????? alert(unknown upload status - Need to check why ? + uploadStatus); $(#filedrag).LoadingOverlay(hide, true); } }; this.checkForUploads function () { //fix markup indexing //check for deleted files debugger; if ($(.uploadbody .uploaddata-statusdeleted).length ! 0) { $(.uploadbody .uploaddata-statusdeleted).each(function () { $(this).remove() }); var realindex 0; $(.uploadbody .upload).each(function () { $(this).attr(data-index, realindex); console.log(this); realindex++; }); } return new Promise(function (resolve, reject) { //Get div of the first matching upload element that its data-status pending, if none, all uploads are completed self.$upload $(.uploadbody .uploaddata-statuspending:first); // if (self.$upload.length>0) // self.$upload $(.uploaddata-statuspending:first); self.$upload.attr(data-status, processing); console.log(self.$upload.length: + self.$upload.length); if (self.$upload.length ! 0) { // set flag to ture so if we drag files when working , dont call chackForUpload again self.filesUploadingProccessing true; //Based on index of the div, get correct file from files array //alert(line 550 in - - vfc_GenericFileUpload_Yossi); //currentFile filesself.$upload.attr(data-index); // Original // self.currentFile self.ourFilesArrayself.$upload.attr(data-index); self.currentFile self.ourFilesArray.filter(x>x.name self.$upload.attr(data-filename))0; // var currentFileIndex self.$upload.attr(data-index); var currentFileIndex self.ourFilesArray.indexOf( self.currentFile); console.log(); console.log(uploading); console.log(self.$upload); console.log(currentFileIndex); console.log(self.currentFile); console.log(); /*Build the byteChunkArray array for the current file we are processing. This array is formatted as: 0-179999,180000-359999,etc and represents the chunks of bytes that will be uploaded individually.*/ self.byteChunkArray new Array(); //First check to see if file size is less than the chunk size, if so first and only chunk is entire size of file if (self.currentFile && (self.currentFile.size self.CHUNK_SIZE)) { // alert(currentFile.size CHUNK_SIZE); self.byteChunkArray0 0- + (self.currentFile.size - 1); } else { //Determine how many whole byte chunks make up the file, //alert(currentFile.size >CHUNK_SIZE); try { if (self.currentFile) { var numOfFullChunks Math.floor(self.currentFile.size / self.CHUNK_SIZE); //i.e. 1.2MB file would be 1000000 / CHUNK_SIZE var remainderBytes self.currentFile.size % self.CHUNK_SIZE; // would determine remainder of 1200000 bytes that is not a full chunk var startByte 0; var endByte self.CHUNK_SIZE - 1; //Loop through the number of full chunks and build the byteChunkArray array for (i 0; i numOfFullChunks; i++) { self.byteChunkArrayi startByte + - + endByte; //Set new start and stop bytes for next iteration of loop startByte endByte + 1; endByte + self.CHUNK_SIZE; } //Add the last chunk of remaining bytes to the byteChunkArray startByte self.currentFile.size - remainderBytes; endByte self.currentFile.size; self.byteChunkArray.push(startByte + - + endByte); } } catch (err) { console.log(err) console.log(bad file? + self.currentFile); } } //Start processing the byteChunkArray for the current file, parameter is because this is the first chunk being uploaded and there is no attachment Id //alert(start process); self.processByteChunkArray(JSON.stringify({ ContentVersionId: null, ContentDocumentId: null }), currentFileIndex); } else { //All uploads completed, enable the input and buttons console.log(????????? All uploads completed ??????? for + self); //alert (checkForUploads 0 +self.$upload.length ); $(#spinner).hide(); self.files null; $(.uploadBox input).removeAttr(disabled); $(.button).removeAttr(disabled).attr(class, btn); /*Remove the browse input element and replace it, this essentially removes the selected files and helps prevent duplicate uploads*/ //$(#filesInput).replaceWith(input typefile namefile multipletrue idfilesInput styledisplay:none>); // seeting this flag to know we finished all files self.filesUploadingProccessing false; //var method_name completeUploads; // Since its name is being dynamically generated, always ensure your function actually exists if (typeof windowself.JSAllUploadCompleted function) { windowself.JSAllUploadCompleted(self.arrayAtachId); } // empty all uploaded ids self.arrayAtachId ; console.log(resolving ...............); console.log(self); self.status done; $(#uploadmodal).modal(hide); self null; resolve(); } }); }; //Uploads a chunk of bytes, if attachmentId is passed in it will attach the bytes to an existing attachment record self.processByteChunkArray function (attachmentId, currentFileIndex) { if (self.byteChunkArray.length > 0 && !self.ronenAbort) { //Determine the byte range that needs to uploaded, if byteChunkArray is like... 0-179999,180000-359999 var indexes self.byteChunkArray0.split(-); //... get the first index range 0-179999 -> 0,179999 var startByte parseInt(indexes0); //0 var stopByte parseInt(indexes1); //179999 var blobChunk self.currentFile.slice(startByte, stopByte + 1); self.reader new FileReader(); self.reader.onerror self.errorHandler; self.reader.onabort function (e) { alert(File read cancelled); }; self.reader.onprogress self.updateProgress; self.reader.onloadstart function (ev) { }; self.reader.onload function (ev) { }; if (self.ronenAbort) { OutputInfo(Aborting File: + self.currentFile.name); self.reader.abort(); } //Create a reader.onload function, this will execute immediately after reader.readAsBinaryString() function above; self.reader.onloadend function (evt) { console.log(onloadeend + self.attachmentID); //OutputInfo( readyState: + evt.target.readyState ); if (evt.target.readyState FileReader.DONE) { //Make sure read was successful, DONE 2 //Base 64 encode the data for transmission to the server with JS remoting, window.btoa currently on support by some browsers // Original - var base64value window.btoa(evt.target.result); // Original // test - alert(String.fromCharCode.apply(null, new Uint16Array(evt.target.result))); try { //alert(start convert to base64); //var view new Uint8Array(evt.target.result); //alert(start convert to base64 1 + view + : length + view.length); //var binary String.fromCharCode.apply(window, view); //var base64value btoa(binary); // using this byte convertion becuase in chrome browser String.fromCharCode.apply // Size limit is 120K and we using 180K var binary ; var bytes new Uint8Array(evt.target.result); var len bytes.byteLength; for (var i 0; i len; i++) { binary + String.fromCharCode(bytesi); } var base64value window.btoa(binary); } catch (exception) { alert(exception.message); } //Use js remoting to send the base64 encoded chunk for uploading console.log(--------------- Going To call vfc_GenericFileUploadController.attachFilesBlob With this data --------------------------); console.log(attachmentId : + self.attachmentID); console.log(ContentDoc + ContentVer : + attachmentId); console.log(currentFile.name : + self.currentFile.name); console.log(currentFile.type : + self.currentFile.type); console.log(-------------------------------------------------------------------------------------------------------------------------); vfc_GenericFileUploadController.attachFilesBlob(self.attachmentID, attachmentId, self.currentFile.name, self.currentFile.type, base64value, function (result, event) { // OutputInfo(br> + id: + result + currentFile.name + currentFile.name +br> ); //Proceed if there were no errors with the remoting call if (event.status true) { //Update the percent of the status bar and percent, first determine percent complete var percentComplete Math.round(stopByte / self.currentFile.size * 100); self.$upload.find(.percentComplete).text(percentComplete + %); /* $(.uploadcircle).circleProgress({ value: percentComplete / 100, size: 10, fill: { gradient: lightblue, blue } });*/ // self.$upload.find(.statusBarPercent).css(width, percentComplete + %); //OutputInfo(percentComplete: + percentComplete); //Remove the index information from the byteChunkArray array for the piece just uploaded. self.byteChunkArray.shift(); //removes 0 index //Set the attachmentId of the file we are now processing //attachmentId result; attachmentId result; ; // var attachmentId $.parseJSON(result); // todo : set result back to div self.$upload.attr(data-fileId, attachmentId); self.outerDAIobjectArray.forEach(function (item) { if (item.dataIndex currentFileIndex) item.AttachmentId attachmentId; //console.log(item.FileName : item.dataIndex - + attachmentId); //console.log(item.FileName + : + item.dataIndex); }); // for debug purpose // $(spandata-index + currentFileIndex + ).text(attachmentId); //Call process byteChunkArray to upload the next piece of the file self.processByteChunkArray(attachmentId, currentFileIndex); } else { ; //If script is here something broke on the JavasSript remoting call //Add classes to reflect error self.$upload.attr(data-status, error); self.$upload.addClass(uploadError); self.$upload.find(.statusPercent).addClass(statusBarPercentError); self.$upload.attr(title, event.message); //Check and continue the next file to upload self.checkForUploads(); } }, { escape: false }); } else { //Error handling for bad read alert(Could not read file); alert(this.CustomLabelMessageFile_too_big_Error); } }; self.reader.readAsArrayBuffer(blobChunk); } else { self.currentFile self.ourFilesArraycurrentFileIndex; //This file has completed, all byte chunks have been uploaded, set status on the div to complete or upload aborted if (self.currentFile) { console.log(self.currentFile.name + file upload completed); } else { console.log(self.currentFile + currentFileIndex); console.log(self.$upload); } self.$upload.attr(data-status, complete); // TODO // Call SF Class to set isMajorVersion to true again. if (self.ronenAbort) { // delete file from salesforce if exists vfc_GenericFileUploadController.deleteFile(attachmentId, function (result, event) { if (event.status true) { console.log(good delete + currentFileIndex); //alert(result); //currentFileIndex $(.uploaddata-index + currentFileIndex + ).hide(); //self.$upload.attr(data-status,deleted); } else { OutputInfo(delete failed); } }); } else { if (self.currentFile) { //Change name of file to link of uploaded attachment self.$upload.find(.name).html(a href + self.VIEW_URL + attachmentId + target_blank> + self.currentFile.name + /a>); // When file completes hiding the status bar. self.$upload.find(.statusBar).hide(); // When file complete show checkmark icon //self.$upload.find(#uploadSuccess).show(); self.$upload.find(#uploadSuccess).attr(src, /img/func_icons/util/checkmark16.gif); ///////////////////////////////////////////////////////////////////// // TODO Set File MajorVersion to True - There is a problem doing this ///////////////////////////////////////////////////////////////////// /*vfc_GenericFileUploadController.attachFilesUpdate(attachmentId,PrefixFileName,Description,Isprivate, function(result,event){ if(event.status true){ // Complete update more data for the attachement } });*/ // save all the uploaded file ids so we could use it later if we need self.arrayAtachId.push(attachmentId); } else { console.log(self.currentFile + currentFileIndex); console.log(self.$upload); } } // if there was abort clear it self.ronenAbort false; //Call the checkForUploads to find the next upload div that has data-statusincomplete and start the upload process. self.checkForUploads(); } }; this.hideWin function () { jQuery(.curtain).hide(); }; this.showWin function () { jQuery(.curtain).show(); }; // //this is the main function that is exposed to the user- lets the user config the ile uploader //Size: Tiny Small Medium Large this.initFileUploader function (size, message, msgarry, isSimple, color) { _this.initializeFileUploadComponentAfterHtmlIsSet(); $(.msg).html(message); $(.material-icons).addClass(size); $(#filedrag).addClass(uploader_ + size); $(#filedrag).css(color, color); if (isSimple) { $(.apexp).show(); $(#filedrag).hide(); } }; this.generateGUID function () { function S4() { return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1); } var guid (S4() + S4() + - + S4() + -4 + S4().substr(0, 3) + - + S4() + - + S4() + S4() + S4()).toLowerCase(); this.attachmentID guid; }; this.uploadedFiles this.ourFilesArray.slice(); // this.replaceContainer function (containerSelector) { $(.fileuploaderplugin).detach().appendTo(containerSelector); }; this.showOnlyPendingFiles function (isShowOnlyPending) { if (isShowOnlyPending) { $(.upload).show(); $(.filedrag-cont).hide(); } else { $(.filedrag-cont).show(); } }; this.startUpload function (isModal) { // self.attachmentID this.attachmentID; debugger; self.retoreHTMLState(); $(.uploadbody).empty(); self.status started; if (isModal) { $(div.upload).detach().appendTo(.uploadbody); $(.uploadbody input).remove(); $(.uploadBox).hide(); $(#uploadmodal).modal(); } console.log(startUload); console.log(self.ourFilesArray); $(.fileuploaderplugin).html(self.innerhtml); return self.checkForUploads(); }; this.attachmentID ; this.innerhtml $(.fileuploaderplugin).html(); this.saveState function () { debugger; if ($(div.uploaddata-statusdeleted).length ! 0) { $(div.uploaddata-statusdeleted).each(function () { $(this).remove() }); if ($(div.upload).length ! self.uploadedFiles.length) { $(div.upload).each(function () { var result self.ourFilesArray.filter(file > file.name $(this).data(filename)); if (result.length 0) { $(this).remove(); } }) } } this.innerhtml $(.fileuploaderplugin).html(); this.innerhtml + $(.upload).html(); }; this.retoreHTMLState function () { $(.fileuploaderplugin).html(this.innerhtml); self.setDeleteIconAction(); }; this.saveFileState function () { //copy array of files this.uploadedFiles this.ourFilesArray.slice(); }; this.hasValidFilesForUpload function () { return this.ourFilesArray.length > this.badFiles.length; } } var showBigFile false; var showDropZone true; /script>/span> /form> /div> div classmodal-footer> button classbtn btn-primary idbtnModalEducationSave typebutton>Save/button> button classbtn btn-default data-dismissmodal idbtnModalExtraIMedicationCancel typebutton>Cancel/button> /div> /div> /div> /div> div classmodal data-backdropstatic data-keyboardfalse idEmploymentModal> div classmodal-dialog> div classmodal-content> div classmodal-header> h4 classmodal-title>Employment/h4> button classclose data-dismissmodal typebutton>×/button> /div> div classmodal-body> form idemployment_Form> div classform-group col-md-12 > label classcontrol-label forplace_of_Work__c>Place of Work/label> input classform-control data-validationrequired data-validation-error-msgis Required Place of Work idplace_of_Work__c maxlength255 placeholderenter Place of Work typetext /> /div> div classform-group col-md-12 > label classcontrol-label forstart_Date__c>Start Date/label> div classinput-group date data-target-inputnearest iddtp_StartDate> input classform-control datetimepicker-input data-target#dtp_StartDate data-validationrequired futureDate data-validation-error-msg-requiredis Required Start Date idstart_Date__c maxlength255 placeholderenter Start Date typetext /> div classinput-group-append data-target#dtp_StartDate data-toggledatetimepicker> div classinput-group-text>i classfa fa-calendar>/i>/div> /div> /div> /div> div classform-group col-md-12 > label classcontrol-label forend_Date__c>End Date/label> div classinput-group date data-target-inputnearest iddtp_EndDate> input classform-control datetimepicker-input data-target#dtp_EndDate data-validationrequired EndDateUpStartDate data-validation-error-msg-requiredis Required End Date idend_Date__c maxlength255 placeholderenter End Date typetext /> div classinput-group-append data-target#dtp_EndDate data-toggledatetimepicker> div classinput-group-text>i classfa fa-calendar>/i>/div> /div> /div> /div> div classform-group col-md-12 > label classcontrol-label forrole__c>Role/label> input classform-control data-validationrequired data-validation-error-msgis Required Role idrole__c maxlength255 placeholderenter Role typetext /> /div> div classform-group col-md-12 > label classcontrol-label forcity__c>City/label> input classform-control data-validationrequired data-validation-error-msgis Required City idmodal_city__c maxlength255 placeholderenter City typetext /> /div> div classform-group col-md-12 > label classcontrol-label forcountry__c>Country/label> input classform-control data-validationrequired data-validation-error-msg is Required Country idcountry__c maxlength255 placeholderenter Country typetext /> /div> input idemploymentRowIndexFromTable typehidden /> /form> /div> div classmodal-footer> button classbtn btn-primary idbtnModalEmploymentSave typebutton>Save/button> button classbtn btn-default data-dismissmodal idbtnModalEmploymentCancel typebutton>Cancel/button> /div> /div> /div> /div> /div>/span> /div> div classcol-md-12 styletext-align: left;> button classbtn btn-primary btn-lg data-stylezoom-in idbuttonSend typebutton>span classladda-label>Continue/span>/button> /div> /div> /form> script> $(document).ready(function() { // $(#education-employment-panel).removeClass(d-none); // $(#education-employment-panel).addClass(d-none); // removed for now 7/11/2019 /* $(#defaultChecked).change(function(event) { $input $(this); if($input.prop( checked )true) { $(#education-employment-panel).removeClass(d-none); $(#diploma).removeClass(d-none); } else { $(#education-employment-panel).addClass(d-none); $(#diploma).addClass(d-none); } }); $(#defaultUnchecked).change(function(event) { $input $(this); if($input.prop( checked )true) { $(#education-employment-panel).addClass(d-none); $(#diploma).addClass(d-none); } else { $(#education-employment-panel).removeClass(d-none); $(#diploma).removeClass(d-none); } }); */ // Add custom validation rule for hebrew names $.formUtils.addValidator({ name : hebrewNames, validatorFunction : function(value, $el, config, language, $form) { var nameTest new RegExp(/(^\u0590-\u05FF-. *$)/gi); return nameTest.test(value); }, errorMessage : invalid name, errorMessageKey: badHebrewName }); $(#buttonSend).click(function(e) { e.preventDefault(); var formVa $(#pay-form); if (!formVa.isValid()) { console.log(notvalid); validForm false; } // removed for now 7/11/2019 /*else if((educationTbody.rows.length0 && employmentTbody.rows.length0) && $(#defaultChecked).prop( checked )true) { alert(יש להוסיף השכלה והיסטוריה תעסוקתית); validForm false; } else if((educationTbody.rows.length0 && employmentTbody.rows.length>0) && $(#defaultChecked).prop( checked )true) { alert(יש להוסיף השכלה); validForm false; } else if((educationTbody.rows.length>0 && employmentTbody.rows.length0) && $(#defaultChecked).prop( checked )true) { alert(יש להוסיף היסטוריה תעסוקתית); validForm false; }*/ else { console.log(valid); saveData(); } }); console.log(companies); console.log(); }); function saveData( ) { /************************ create object Tranzila result *************************/ function ContactObject() { this.Israeli_ID_Number__c $(#israliId).val(); this.FirstName $(#firstName).val(); this.LastName $(#lastName).val(); this.MobilePhone $(#phone).val(); this.email $(#email).val(); this.Company_Name__c $(#Company_Name__c).val(); this.Membership_type__cPrivate; this.Agree_to_receive_promotional_material__c כן; // $(#promoting-material).prop(checked) ? כן : לא; this.Role_in_Company__c $(#Role_in_Company__c).val(); this.npe01__PreferredPhone__cMobile; } var resultObject new ContactObject(); debugger; try { // Show overlay $(#pay-form).LoadingOverlay(show); Visualforce.remoting.Manager.invokeAction( vf_MembershipRegistrationController.updateContactObject, resultObject, pageLanguage , , , function(result, event) { if (event.status) { $(#pay-form).LoadingOverlay(hide, true); var resultJSON $.parseJSON(result); console.log(Remoting Success : + result); if (resultJSON.success) { debugger; if ( $(#defaultChecked).prop( checked )true) { saveEmploymentEducation(resultJSON.recordId,); } $(#defaultChecked).prop( checked ) debugger; // for free subscription use the if/else , otherwise comment them //if ($(#defaultUnchecked).prop( checked ) true) //{ // createOpportunityWithZeroSum(resultJSON.accountId, resultJSON.recordId); //} //else //{ var tranzilaBasueURL assembleClearanceURL(); saveTransactionHelperBeforeSendingToClearance(tranzilaBasueURL,resultJSON.recordId,resultJSON.accountId,Personal ); //} $(#pay-form).hide(); } else { $.confirm({ title: Saving your data failed, icon: fa fa-warning, content: resultJSON.errMessage, type: red, typeAnimated: true, buttons: { /*tryAgain: { text: Try again, btnClass: btn-red, action: function(){ } },*/ close: function () { } } }); } } else { console.log(ERRRRRRRO); console.log(event); //TODO - toast message $(.alert).show(); // $(#failureMessage).show(); $(#pay-form).hide(); } },{escape: false}); } catch (exp) { $(#pay-form).LoadingOverlay(hide, true); alert(exp); } } function createOpportunityWithZeroSum(accountId,contactId) { debugger; Visualforce.remoting.Manager.invokeAction( vf_MembershipRegistrationController.CreateOpportunityWithZeroValue, accountId,contactId, function(result, event) { debugger; if (event.status) { console.log(Remoting Success : + result); // After success saving the donation/payment intitial data to the DB // Call to the clearance company to proceed to actual payment. var zeroSumResponse $.parseJSON(result); console.log(ok); console.log(zeroSumResponse ); $(#successSave).show(); } else { debugger; //laddaButton.stop(); console.log(Error occured); } },{escape: false}); } /script>/span> div classrow setup-content idpaymentContainer> div classcol-xs-8 col-md-offset-2> div classcol-xs-12> h3>Payment & Finish/h3> h5> div classd-none idisMember>label>Start membership date:span idstartm> /span> End membership date:span idendm>/span>/label>/div>/h5> div idpaymentContainer1> iframe idpaymentIframe scrollingno>/iframe> /div> /div> /div> /div> div idpageErrorAlert styledisplay:none> div classalert alert-danger notification-alert mt-5 rolealert> h3 classalert-heading page-error-message>/h3> br /> br /> br /> /div> /div> div classalert alert-success mt-5 idsuccessDonation rolealert styledisplay:none> h3 classalert-heading>Donation Completed Successfuly/h3> br /> strong>h6 idnotificationBaseMessage>/h6>/strong> br /> h6>Payment confirmation number : span idconfirmationNumber>/span>/h6> h6>Your receipt will be delivered by email and/or by regular mail, as per your request. /h6> br /> br />span idj_id0:dmn classd-none dmn>label>להמשך תהליך קבלת הסמכה יש להמשיך בקישור הבא:/label> a classalert-link hrefhttps://www.sysnan.co.il/personal-certifications styletext-decoration: underline; target_new>קבלת הסמכה/a>/span> /div> div classalert alert-danger mt-5 idfailureDonation rolealert styledisplay:none> h3 classalert-heading>Membership Failure Message/h3> br /> span idnotificationResponseCode>/span> span idnotificationMessage>/span> br /> br /> h6>label>p>Something went wrong in the process of making your payment to The Israel Chamber of Information Technology./p>p>There was probably a mistake in one of the details you entered./p>p> /p>p>strong>click a hrefjavascript:startOverAfterFailure();>here/a>to try again./strong>/p>p>strong> /strong>/p>p>strong>Please note that no charge has been made for the details you have already entered./strong>/p>p> /p>p>We invite you to follow our activities in our a hrefhttps://www.facebook.com/groups/124184554269902/about/>facebook/a> page/p>/label>/h6> br /> /div> div idsuccessSave styledisplay:none> div classalert alert-success notification-alert mt-5 rolealert> h3 classalert-heading idsuccessMessage>Success Save Data/h3> br /> strong>h4 idnotificationBaseMessage>/h4>/strong> br /> br /> br /> br /> /div> /div> div idfailureSave styledisplay:none> div classalert alert-danger notification-alert mt-5 rolealert> h3 classalert-heading>Failure Savind Data - Label/h3> br /> br /> br /> /div> /div> /div> div classmodal fade rtl idmodalTermsConditionsDialog roledialog styledirection:rtl> div classmodal-dialog modal-lg> div classmodal-content> div classmodal-header> button classclose data-dismissmodal typebutton>×/button> h4 classmodal-title>Terms & Conditions/h4> /div> div classmodal-body> object datahttps://docs.wixstatic.com/ugd/e3f873_dea61d578a4c4a15b9d9c4791503047d.pdf height500 typeapplication/pdf width100%>not/object> div classmodal-footer> button classbtn btn-default data-dismissmodal typebutton>Close/button> /div> /div> /div> /div> /div> footer classcontainer-fluid font-small mb-1 mt-3> div classrow> div classmx-auto> span>phone: 03-9040997 /span> a hrefmailto:info@israel-it.org>info@israel-it.org/a> /div> /div> div class text-center > img height49px src/servlet/servlet.ImageServer?id0150X000007P2j5&oid00D0X000000uadJUAQ stylemargin:10px width149px /> /div> div classfooter-copyright text-center py-1>© 2018 Copyright: a hrefhttps://www.sysnan.co.il/ stylecolor:#0a93a6; text-decoration:none;>The Israeli Chamber of Information Technology/a>, Built by LLN IT SOLUTIONS. /div> /footer> script> var generalError; var tranzilaBaseURL; var validForm false; var cityValue ; var pageLanguage; var refferalTo ; var diplomaMessageNeeded false; $(document).ready(function() { pageLanguage en-US; // we have the ability to mark payment/donation to a program/project , so if our URL comes with a ref value we save it so we know that this donation/payment is for somthing refferalTo ; $(#paymentContainer).hide(); generalError $.parseJSON({}); if (!$.isEmptyObject(generalError)) { // Show Error $(#pageErrorAlert).show(); $(.page-error-message).text(generalError.errMessage); return; } $(#description).restrictLength($(#maxlength)); $(#buttonContinueToPayment).click(function(e) { e.preventDefault(); var formVa $(#pay-form); if (!formVa.isValid()) { console.log(notvalid); validForm false; } else { console.log(valid); //laddaButton.start(); //saveEmploymentEducation(); var tranzilaBasueURL assembleClearanceURL(); debugger; saveDataBeforeSendingToClearance(tranzilaBasueURL); } }); $(data-togglepopover).popover({trigger: hover}); // , container: body if (false) { handleDynamicAmounts(); } $.validate({ form : #pay-form, #education_Form, #employment_Form, modules : security, logic }); // Default moment for two year digits. moment.parseTwoDigitYear function (input) { var currentYear new Date().getFullYear().toString().substr(-2); var currentYearNum parseInt(currentYear); return +input + (+input > currentYearNum ? 1900 : 2000); }; // Add custom validation rule for Israel Id Number $.formUtils.addValidator({ name : israeliId, validatorFunction : function(value, $el, config, language, $form) { return isValidIsraeliID(value); }, errorMessage : Invalid Israeli ID, errorMessageKey: badIsraelIdNumber }); // Add custom validation rule for Israel Id Number $.formUtils.addValidator({ name : israeliIdLength, validatorFunction : function(value, $el, config, language, $form) { return value.length > 9; }, errorMessage : Please Enter 9 digits, errorMessageKey: badIsraelIdNumberLength }); $(#israeliContainer).on(keydown, #israliId, function(e) { -1 ! $.inArray(e.keyCode, 46, 8, 9, 27, 13, 110, 190) || /65|67|86|88/.test(e.keyCode) && (!0 e.ctrlKey || !0 e.metaKey) || 35 e.keyCode && 40 > e.keyCode || (e.shiftKey || 48 > e.keyCode || 57 e.keyCode) && (96 > e.keyCode || 105 e.keyCode) && e.preventDefault() }); $(#termsAndAgreementLink).click(function(e) { // capture the anchor link click e.preventDefault(); // block default anchor link behaviors if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) { window.open(https://docs.wixstatic.com/ugd/e3f873_dea61d578a4c4a15b9d9c4791503047d.pdf); return false; } else { $(#modalTermsConditionsDialog).modal(toggle); } }); }); function showTermsAndAgreement() { if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) { window.open(https://docs.wixstatic.com/ugd/e3f873_dea61d578a4c4a15b9d9c4791503047d.pdf); return false; } else { $(#modalTermsConditionsDialog).modal(toggle); } } function isValidIsraeliID(id) { var id String(id).trim(); if (id.length > 9 || id.length 5 || isNaN(id) || id000000000) return false; // Pad string with zeros up to 9 digits id id.length 9 ? (00000000 + id).slice(-9) : id; return checkIid(id); /*return Array.from(id, Number) .reduce((counter, digit, i) > { const step digit * ((i % 2) + 1); return counter + (step > 9 ? step - 9 : step); }) % 10 0;*/ } function checkIid(s) { var sID String(s); if ((sID.length ! 9) || (isNaN(sID))) return false; var counter 0, incNum; for (var i 0; i 9; i++) { incNum Number(sID.charAt(i)); incNum * (i % 2) + 1; if (incNum > 9) incNum - 9; counter + incNum; } return (counter % 10 0); } // Used from all components which have picklists function setPickVals(field,optionsArray) { var options option value>/option>; for (city in optionsArray) { options + option value+ city +>+ optionsArraycity +/option>; } $(field).html(options); } var getUrlParameter function getUrlParameter(sParam) { var sPageURL decodeURIComponent(window.location.search.substring(1)), sURLVariables sPageURL.split(&), sParameterName, i; for (i 0; i sURLVariables.length; i++) { sParameterName sURLVariablesi.split(); if (sParameterName0 sParam) { return sParameterName1 undefined ? true : sParameterName1; } } }; function removeParam(key, sourceURL) { var rtn sourceURL.split(?)0, param, params_arr , queryString (sourceURL.indexOf(?) ! -1) ? sourceURL.split(?)1 : ; if (queryString ! ) { params_arr queryString.split(&); for (var i params_arr.length - 1; i > 0; i - 1) { param params_arri.split()0; if (param key) { params_arr.splice(i, 1); } } rtn rtn + ? + params_arr.join(&); } return rtn; } function assembleClearanceURL() { debugger; var dataPaymentNumber 1; // $(#paymentNo).val(); // מספר תשלומים var tranzilaBaseURL https://direct.tranzila.com/chamber/iframe.php?; tranzilaBaseURL + thid + ^THID^; if($(inputtyperadionamemembershipAmount).length>0) tranzilaBaseURL + &sum + $(inputtyperadionamemembershipAmount:checked).val(); else if($(#pmu_Diploma).length) tranzilaBaseURL + &sum + $(#pmu_Diploma).val(); tranzilaBaseURL + ¤cy1; // default NIS tranzilaBaseURL + &nologo + 1; tranzilaBaseURL + &lang + us; tranzilaBaseURL + &email + $(#email).val(); tranzilaBaseURL + &company + $(#email).val(); tranzilaBaseURL + &firstname + encodeURIComponent($(#firstName).val()); tranzilaBaseURL + &lastname + encodeURIComponent($(#lastName).val()); tranzilaBaseURL + &contact + encodeURIComponent($(#firstName).val()) + + encodeURIComponent($(#lastName).val()); //tranzilaBaseURL + &fnh + encodeURIComponent($(#firstNameHebrew).val()); //tranzilaBaseURL + &lnh + encodeURIComponent($(#lastNameHebrew).val()); tranzilaBaseURL + &address + encodeURIComponent($(#street).val()); tranzilaBaseURL + &address1 + encodeURIComponent($(#street).val()); tranzilaBaseURL + &zipcode + $(#zipcode).val(); var currentCity ; if (pageLanguage iw) { currentCity $(#citiesInput).val(); } else { currentCity $(#cityEng).val(); } tranzilaBaseURL + &city + encodeURI(currentCity); //tranzilaBaseURL + &pdesc + encodeURIComponent($(#description).val()); tranzilaBaseURL + &pdesc + ^TYPEOFSERVICE^; // encodeURIComponent($(#description).val()); tranzilaBaseURL + &phone + $(#phone).val(); //tranzilaBaseURL + &pa + $(#phoneAlternate).val(); tranzilaBaseURL + &rpi + $(#requestPaperInvoice).prop(checked); tranzilaBaseURL + &myid + $(#israliId).val(); tranzilaBaseURL + &fl + pageLanguage; // subscription payment if ($(#subscription).prop(checked)) tranzilaBaseURL + &tranmode + AK; // payment number if (dataPaymentNumber > 1) { tranzilaBaseURL + &maxpay + dataPaymentNumber; tranzilaBaseURL + &cred_type + 8; } tranzilaBaseURL + &fail_url_address + https%3A%2F%2Fsysnan.secure.force.com%2Fvf_clearanceComplete; tranzilaBaseURL + &success_url_address + https%3A%2F%2Fsysnan.secure.force.com%2Fvf_clearanceComplete; return tranzilaBaseURL; } function saveDataBeforeSendingToClearance(clearanceURL) { var undefined; /************************ create object Tranzila result *************************/ function TranzillaResultObject() { debugger; this.DonationProccessStatus__c Sent To Clearance; this.email__c $(#email).val(); this.First_Name__c $(#firstName).val(); this.Last_Name__c $(#lastName).val(); if($(#firstNameHebrew).val()!null) this.First_Name_in_Hebrew__c $(#firstNameHebrew).val(); else this.First_Name_in_Hebrew__c $(#firstName).val(); if( $(#lastNameHebrew).val()!null) this.Last_Name_in_Hebrew__c $(#lastNameHebrew).val(); else this.Last_Name_in_Hebrew__c $(#lastName).val(); this.Currency_Type__c 1 // Default NIS; this.Gender__c $(inputtyperadionameGender1__c:checked).val(); this.Sum__c $(inputtyperadionamemembershipAmount:checked).val(); this.Phone__c $(#phone).val(); this.Recurring_Payment__c $(#subscription).prop(checked); this.MembershipRegistrationType__c p c ? Corporate Membership : Personal Membership; this.Israel_Id_Number__c $(#israliId).val(); this.TermsConditionAgreement__c $(#termsAndConditions).prop(checked); this.Membership_Type__c $(#Membership_type__c).val(); this.Company_Name__c $(#Company_Name__c).val(); this.Primary_Affiliation__c $(#npsp__Primary_Affiliation__c).val(); // For corporate form this.ClearanceURL__c clearanceURL; this.Fax__c $(#Fax).val(); this.WorkEmail__c $(#npe01__WorkEmail__c).val(); this.phoneAlternate__c$(#HomePhone).val(); this.DonorAddress__c $(#street).val(); this.Zipcode__c $(#zipcode).val(); this.City__c $(#city__c).val(); ////////////////////////////////////////////////////////// // check if this field exists if so set it otherwise dont ////////////////////////////////////////////////////////// if ($(#dtp_Birthdate).length > 0) this.BirthDate__c normalizeDate(moment(moment($(#dtp_Birthdate).datetimepicker(viewDate)))).valueOf(); //ןif ($(#defaultChecked).prop( checked )true) if ($(#pmu_Diploma).prop( checked )true || $(#defaultChecked).prop( checked )true) { //alert(teudat hasmacha); this.IsDiploma__c true; diplomaMessageNeeded true; } // To implement - מספר תשלומים // this.NumberOfPayments } var resultObject new TranzillaResultObject(); Visualforce.remoting.Manager.invokeAction( vf_MembershipRegistrationController.insertTranzilaObject, resultObject, pageLanguage , function(result, event) { debugger; if (event.status) { console.log(Remoting Success : + result); // After success saving the donation/payment intitial data to the DB // Call to the clearance company to proceed to actual payment. var preClearanceJSON $.parseJSON(result); console.log(preClearanceJSON); // if we have an error of transaction helper id empty we sholud send an email error. if (preClearanceJSON.errMessage null || preClearanceJSON.errMessage ) //&& result ! undefined { // Cannot continue if transaction helper Id returned as empty if (preClearanceJSON.transactionHelperId null || preClearanceJSON.transactionHelperId ) { //laddaButton.stop(); handleFatalError( SysNan: Transaction Not Sent To Credit Card Processing (Transaction Helper ID is Empty,Error occured before sending to clearance - Transaction Helper Id field returned empty, $(#firstName).val(), $(#lastName).val(), $(#israliId).val(), $(inputtyperadionamemembershipAmount:checked).val(), ש"ח, $(#email).val(), $(#phone).val(), , preClearanceJSON , event.status ); // $(#phoneAlternate).val() } else { debugger; // create clearance url clearanceURL clearanceURL.replace(^THID^,preClearanceJSON.transactionHelperId); clearanceURL clearanceURL.replace(^TYPEOFSERVICE^,encodeURIComponent(preClearanceJSON.typeOfServiceForInvoiceText)); //alert($(#pmu_Diploma).prop( checked )); //alert($(#defaultChecked).prop( checked )); if ($(#pmu_Diploma).prop( checked )true || $(#defaultChecked).prop( checked )true) { saveEmploymentEducation(preClearanceJSON.contactId,clearanceURL); } else { // alert(ronen); continueToPayment(clearanceURL,formType); } } } else { //laddaButton.stop(); handleFatalError( SysNan: Transaction Not Sent To Credit Card Processing (General Error),Error occured before sending to clearance, $(#firstName).val(), $(#lastName).val(), $(#israliId).val(), $(inputtyperadionamemembershipAmount:checked).val(), ש"ח, $(#email).val(), $(#phone).val(), , preClearanceJSON , event.status ); // $(#phoneAlternate).val() } } else { debugger; // laddaButton.stop(); console.log(Error occured before sending to clearance); // call the method to show FatalErros handleFatalError( SysNan: Transaction Not Sent To Credit Card Processing (General Error), event.message, $(#firstName).val(), $(#lastName).val(), $(#israliId).val(), $(inputtyperadionamemembershipAmount:checked).val(), ש"ח, $(#email).val(), $(#phone).val(), , preClearanceJSON, event.status ); // $(#phoneAlternate).val() } },{escape: false}); } function saveTransactionHelperBeforeSendingToClearance(clearanceURL,contactId,accountId,formType) { debugger; var undefined; /************************ create object Tranzila result *************************/ function TranzillaResultObject() { debugger; this.DonationProccessStatus__c Sent To Clearance; this.InternalClearanceState__c Sent To Clearance; this.Currency_Type__c 1 // Default NIS; if($(inputtyperadionamemembershipAmount:checked).val()!undefined ) this.Sum__c $(inputtyperadionamemembershipAmount:checked).val(); else this.Sum__c $(inputtypecheckboxnamemembershipAmount:checked).val(); this.ClearanceURL__c clearanceURL; this.TermsConditionAgreement__c $(#termsAndConditions).prop(checked); this.Recurring_Payment__c $(#subscription).prop(checked); this.MembershipRegistrationType__c p c ? Corporate Membership : Personal Membership; this.InitiatorSourceType__c p c ? Organization :Personal; this.Account__caccountId; this.Contact__ccontactId; //ןif ($(#defaultChecked).prop( checked )true) if ($(#pmu_Diploma).prop( checked )true || $(#defaultChecked).prop( checked )true) { //alert(teudat hasmacha); this.IsDiploma__c true; diplomaMessageNeeded true; } } var resultObject new TranzillaResultObject(); Visualforce.remoting.Manager.invokeAction( vf_MembershipRegistrationController.InsertClearanceInitiatorToDB, resultObject,null, pageLanguage ,formType, function(result, event) { debugger; if (event.status) { console.log(Remoting Success : + result); // After success saving the donation/payment intitial data to the DB // Call to the clearance company to proceed to actual payment. var preClearanceJSON $.parseJSON(result); console.log(preClearanceJSON); // if we have an error of transaction helper id empty we sholud send an email error. if (preClearanceJSON.errMessage null || preClearanceJSON.errMessage ) //&& result ! undefined { // Cannot continue if transaction helper Id returned as empty if (preClearanceJSON.transactionHelperId null || preClearanceJSON.transactionHelperId ) { //laddaButton.stop(); handleFatalError( SysNan: Transaction Not Sent To Credit Card Processing (Transaction Helper ID is Empty,Error occured before sending to clearance - Transaction Helper Id field returned empty, $(#firstName).val(), $(#lastName).val(), $(#israliId).val(), $(inputtyperadionamemembershipAmount:checked).val(), ש"ח, $(#email).val(), $(#phone).val(), , preClearanceJSON , event.status ); // $(#phoneAlternate).val() } else { debugger; // create clearance url clearanceURL clearanceURL.replace(^THID^,preClearanceJSON.transactionHelperId); clearanceURL clearanceURL.replace(^TYPEOFSERVICE^,encodeURIComponent(preClearanceJSON.typeOfServiceForInvoiceText)); //alert($(#pmu_Diploma).prop( checked )); //alert($(#defaultChecked).prop( checked )); continueToPayment(clearanceURL,formType); } } else { //laddaButton.stop(); handleFatalError( SysNan: Transaction Not Sent To Credit Card Processing (General Error),Error occured before sending to clearance, $(#firstName).val(), $(#lastName).val(), $(#israliId).val(), $(inputtyperadionamemembershipAmount:checked).val(), ש"ח, $(#email).val(), $(#phone).val(), , preClearanceJSON , event.status ); // $(#phoneAlternate).val() } } else { debugger; //laddaButton.stop(); console.log(Error occured before sending to clearance); // call the method to show FatalErros handleFatalError( SysNan: Transaction Not Sent To Credit Card Processing (General Error), event.message, $(#firstName).val(), $(#lastName).val(), $(#israliId).val(), $(inputtyperadionamemembershipAmount:checked).val(), ש"ח, $(#email).val(), $(#phone).val(), , preClearanceJSON, event.status ); // $(#phoneAlternate).val() } },{escape: false}); } function continueToPayment(clearanceURL,formType) { // Hide our form $(#pay-form).hide(); // Showing the Iframe debugger; if(formTypePersonal) { $(#isMember).removeClass(d-none); $(#startm).text(moment().format(DD/MM/YYYY)); $(#endm).text(moment().add(1, years).add(-1,days).format(DD/MM/YYYY)); //1 year membership //$(#endm).text(moment().add(2, years).add(-1,days).format(DD/MM/YYYY)); // 2 year membership } $(#paymentContainer).show(); sendTag(); // set Clearance URL to IFRAME $(#paymentIframe).attr(src, clearanceURL); history.replaceState(null, null, location.href); // laddaButton.stop(); } ////////////////////////////////////////////////////////////////////////////// // Show form after clearance failure ////////////////////////////////////////////////////////////////////////////// function startOverAfterFailure() { $(#paymentContainer).hide(); $(#failureDonation).hide(); $(#pay-form).show(); } function handleFatalError(emailSubject, errorMessage, fn , ln, israelID, sum, currency, email, phone, altphone, preClearanceJSON, eventStatus ) { $.confirm({ title: Donation error!, icon: fa fa-warning, content: An error has been occurred, the system administrators has been notified about it. for further questions please contact us at - 02-5300787, we are sorry for any inconvenience. + /br>br/> + errorMessage +, type: red, typeAnimated: true, buttons: { /*tryAgain: { text: Try again, btnClass: btn-red, action: function(){ } },*/ close: function () { } } }); var errorData ; errorData + This Error Message sent only to Administrators of this site; errorData + /br> ; errorData + -----------------------------------------------------------; errorData + /br> ; errorData + /br> ; errorData + an error occurred while + fn + + ln + (id: + israelID + ) tried to donate sum of + sum + + currency; errorData + br/> ; errorData + donor contact info : /br> ; errorData + Email: + email + /br> ; errorData + Phone: + phone + , + altphone + /br> ; errorData + ContactID: + preClearanceJSON.contactId + /br> ; errorData + AccountID: + preClearanceJSON.accountId + /br> ; errorData + Transaction HelperID: + preClearanceJSON.transactionHelperId + /br> ; errorData + br/>br/> ; errorData + Data was not sent to clearance; errorData + br/>br/> ; errorData + errorMessage + /br> + preClearanceJSON.errMessage + /br>; Visualforce.remoting.Manager.invokeAction( vf_MembershipRegistrationController.fatalErrorOccured, emailSubject, errorData , handleFatalErrorResult ); } function handleFatalErrorResult(result, event) { console.log(handleFatalErrorResult); console.log(result); console.log(event); } function shake(obj) { var div obj; var interval 100; var distance 10; var times 4; $(div).css(position, relative); for (var iter 0; iter (times + 1) ; iter++) { $(div).animate({ left: ((iter % 2 0 ? distance : distance * -1)) }, interval); } $(div).animate({ left: 0 }, interval); } //////////////////////////////////////////////////////////////////// function normalizeDate(mydate){ mydate new Date(mydate ); mydate new Date(mydate - mydate.getTimezoneOffset() * 60000); return mydate; } function completedUploads(fileIdsArray) { // alert(completeUpload - vf page); // alert(fileIdsArray); } function uuidv4() { return (1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/018/g, function (c) { return (c ^ crypto.getRandomValues(new Uint8Array(1))0 & 15 >> c / 4).toString(16); });} function sendTag() { // Create a fake a element for magically simple URL parsing var fullUrl document.createElement(a); fullUrl.href location.href ; // opts.url; // IE9+ strips the leading slash from a.pathname because who wants to get home on time Friday anyways var pathname fullUrl.pathname0 / ? fullUrl.pathname : / + fullUrl.pathname; // Manually remove the leading question mark, if there is one // var queryString fullUrl.search0 ? ? fullUrl.search.slice(1) : fullUrl.search; // Turn our params and headers into objects for easier reference // var queryParameters objMap(queryString, &, , true); // var headers objMap(jqXhr.getAllResponseHeaders(), \n, :); // Blindly push to the dataLayer because this fires within GTM dataLayer.push({ event: ajaxComplete, attributes: { // Return empty strings to prevent accidental inheritance of old data type: , url: fullUrl.href || , queryParameters: , pathname: pathname || , hostname: fullUrl.hostname || , protocol: fullUrl.protocol || , fragment: fullUrl.hash || , statusCode: , statusText: , headers: , timestamp: , contentType: , // Defer to jQuerys handling of the response response: } }); } /script> /body>
Subdomains
Date
Domain
IP
clientacquirellc0000000000.my.salesforce-sites.com
2024-04-23
44.241.154.132
achieve3000.my.salesforce-sites.com
2024-09-03
54.69.120.237
panther360.my.salesforce-sites.com
2024-05-08
136.146.39.119
forcecom560.my.salesforce-sites.com
2024-10-04
104.161.191.31
11880.my.salesforce-sites.com
2024-10-05
34.211.108.47
ams01.my.salesforce-sites.com
2024-10-05
34.211.108.45
biasuzzi2021.my.salesforce-sites.com
2024-10-24
34.211.108.46
americansecurityforce21.my.salesforce-sites.com
2024-10-05
34.211.108.45
veoliauki1.my.salesforce-sites.com
2024-06-15
160.8.233.14
ecornell1.my.salesforce-sites.com
2024-10-02
35.167.23.158
3m1.my.salesforce-sites.com
2023-08-15
13.110.30.11
loreal-consumer1.my.salesforce-sites.com
2024-08-30
15.236.214.168
fromday1.my.salesforce-sites.com
2024-08-17
34.211.108.47
123compliancesparta-8402.my.salesforce-sites.com
2024-10-05
34.211.108.46
apnm12.my.salesforce-sites.com
2024-10-27
34.211.108.45
gallery2022.my.salesforce-sites.com
2024-09-06
34.211.108.45
test222.my.salesforce-sites.com
2024-10-04
160.8.185.50
athenaad22.my.salesforce-sites.com
2024-10-05
34.211.108.47
domain-monitor-na42.my.salesforce-sites.com
2023-09-29
13.110.80.201
merkle162.my.salesforce-sites.com
2023-09-29
160.8.246.8
aapa2.my.salesforce-sites.com
2024-10-05
34.211.108.47
thebikeclub2.my.salesforce-sites.com
2024-08-31
34.211.108.46
minion2.my.salesforce-sites.com
2023-10-18
161.71.2.4
aaron2.my.salesforce-sites.com
2024-10-05
34.211.108.46
thu2.my.salesforce-sites.com
2023-08-04
15.236.129.239
addax2.my.salesforce-sites.com
2024-10-05
34.211.108.46
accelerate3.my.salesforce-sites.com
2024-10-27
34.211.108.46
bitspilani3.my.salesforce-sites.com
2024-10-05
34.211.108.46
ras3.my.salesforce-sites.com
2023-09-29
161.71.2.190
atamis-2464.my.salesforce-sites.com
2024-10-05
34.211.108.45
d30000001huxdea4.my.salesforce-sites.com
2023-08-31
13.110.44.186
test-4e4.my.salesforce-sites.com
2024-06-24
13.110.252.227
bajaj4.my.salesforce-sites.com
2024-10-05
34.211.108.46
akkodis4.my.salesforce-sites.com
2024-10-05
34.211.108.45
123compliancesparta-6705.my.salesforce-sites.com
2024-10-28
34.211.108.45
123compliancesparta-185.my.salesforce-sites.com
2024-10-05
34.211.108.46
f5.my.salesforce-sites.com
2024-10-20
35.168.33.249
bh4sf-demo5.my.salesforce-sites.com
2024-06-11
160.8.188.20
connexys-1896.my.salesforce-sites.com
2023-10-19
160.8.255.9
devorg108.my.salesforce-sites.com
2024-06-11
13.110.44.234
atamis-1928.my.salesforce-sites.com
2024-10-05
34.211.108.45
atamis-6048.my.salesforce-sites.com
2024-10-12
34.211.108.45
marketing98.my.salesforce-sites.com
2023-09-29
160.8.10.8
8x8.my.salesforce-sites.com
2023-10-30
13.110.30.11
test509.my.salesforce-sites.com
2023-09-29
13.110.253.163
p-2581519.my.salesforce-sites.com
2024-07-02
34.211.108.47
atamis-9529.my.salesforce-sites.com
2024-10-05
34.211.108.45
atamis-7459.my.salesforce-sites.com
2024-10-05
34.211.108.45
awcomputing189.my.salesforce-sites.com
2024-10-04
13.110.58.147
beaba.my.salesforce-sites.com
2024-10-05
34.211.108.46
rakuten-ichiba.my.salesforce-sites.com
2024-10-04
161.71.130.65
carelinkhca.my.salesforce-sites.com
2023-08-16
13.110.90.40
biblica.my.salesforce-sites.com
2024-10-05
34.211.108.47
avenica.my.salesforce-sites.com
2024-10-05
34.211.108.45
advicetransamerica.my.salesforce-sites.com
2023-08-15
13.110.81.146
aieseccanada.my.salesforce-sites.com
2024-10-05
34.211.108.47
assolombarda.my.salesforce-sites.com
2024-10-05
34.211.108.45
actega.my.salesforce-sites.com
2024-10-05
34.211.108.46
azuga.my.salesforce-sites.com
2024-10-05
34.211.108.45
vha.my.salesforce-sites.com
2024-06-15
160.8.238.8
caixavidaeprevidencia.my.salesforce-sites.com
2024-08-07
18.229.90.41
expedia.my.salesforce-sites.com
2024-03-01
34.211.108.47
iberia.my.salesforce-sites.com
2024-07-29
13.41.5.200
amnistia.my.salesforce-sites.com
2024-10-05
34.211.108.47
authvia.my.salesforce-sites.com
2024-10-05
34.211.108.47
elvia.my.salesforce-sites.com
2024-10-04
16.170.85.244
aprika.my.salesforce-sites.com
2024-10-05
34.211.108.47
ashoka.my.salesforce-sites.com
2024-10-05
34.211.108.46
nshama.my.salesforce-sites.com
2024-05-07
34.211.108.46
afma.my.salesforce-sites.com
2024-10-05
34.211.108.45
anima.my.salesforce-sites.com
2023-09-29
3.10.181.31
bcna.my.salesforce-sites.com
2024-10-20
34.211.108.45
inna.my.salesforce-sites.com
2023-11-24
136.146.37.240
abengoa.my.salesforce-sites.com
2023-12-23
160.8.248.15
alicepizzaspa.my.salesforce-sites.com
2024-10-05
34.211.108.45
acecqa.my.salesforce-sites.com
2024-10-05
34.211.108.45
avalara.my.salesforce-sites.com
2024-10-05
34.211.108.45
acora.my.salesforce-sites.com
2024-10-05
34.211.108.47
pandora.my.salesforce-sites.com
2024-04-30
13.110.45.234
aquazzura.my.salesforce-sites.com
2024-10-05
34.211.108.45
alpha-sa.my.salesforce-sites.com
2024-10-05
34.211.108.46
autelroboticsusa.my.salesforce-sites.com
2024-10-27
34.211.108.46
aucegypta.my.salesforce-sites.com
2024-10-05
34.211.108.47
atta.my.salesforce-sites.com
2024-10-05
34.211.108.45
scvta.my.salesforce-sites.com
2024-09-07
54.212.55.42
bousai-okinawa.my.salesforce-sites.com
2024-10-02
104.161.177.34
newluxa.my.salesforce-sites.com
2024-08-18
3.81.176.231
afza.my.salesforce-sites.com
2024-10-26
34.211.108.45
mondoconvenienza.my.salesforce-sites.com
2024-01-16
85.222.152.186
bayerza.my.salesforce-sites.com
2024-10-05
34.211.108.45
a2a-crm-b2b.my.salesforce-sites.com
2024-10-05
34.211.108.45
rent-a-centerb2b.my.salesforce-sites.com
2024-11-04
18.119.34.253
aab.my.salesforce-sites.com
2024-10-29
34.211.108.47
bnab.my.salesforce-sites.com
2024-07-13
3.67.164.104
abb.my.salesforce-sites.com
2024-04-18
34.211.108.46
anb.my.salesforce-sites.com
2024-10-05
34.211.108.45
otb.my.salesforce-sites.com
2023-09-25
85.222.153.142
bizengage-stb.my.salesforce-sites.com
2024-10-05
34.211.108.45
afr-hub.my.salesforce-sites.com
2024-10-05
34.211.108.47
beverlyhillscarclub.my.salesforce-sites.com
2024-10-05
34.211.108.46
endesab2c.my.salesforce-sites.com
2024-06-01
13.110.52.11
123c.my.salesforce-sites.com
2023-12-23
160.8.255.15
diac.my.salesforce-sites.com
2024-04-30
85.222.152.186
aupac.my.salesforce-sites.com
2024-04-23
34.211.108.45
ansac.my.salesforce-sites.com
2024-10-05
34.211.108.46
biovac.my.salesforce-sites.com
2024-10-05
34.211.108.45
xac.my.salesforce-sites.com
2024-07-22
13.110.40.24
nccc.my.salesforce-sites.com
2024-10-04
136.146.28.243
esteelaudergcc.my.salesforce-sites.com
2024-01-29
13.110.39.189
gatherdc.my.salesforce-sites.com
2024-06-28
34.211.108.47
voestalpinemetsec.my.salesforce-sites.com
2024-06-15
34.211.108.45
bewotec.my.salesforce-sites.com
2024-10-05
34.211.108.45
columbiaexec.my.salesforce-sites.com
2024-09-27
52.33.125.13
contact360-ifc.my.salesforce-sites.com
2024-10-07
15.222.52.199
kinetic.my.salesforce-sites.com
2024-09-11
18.190.137.79
dpcvic.my.salesforce-sites.com
2024-07-25
34.211.108.46
articulategloballlc.my.salesforce-sites.com
2024-10-05
34.211.108.47
wilmingtonplc.my.salesforce-sites.com
2023-09-29
160.8.9.8
bdainc.my.salesforce-sites.com
2024-10-05
34.211.108.46
prudential-serviceinc.my.salesforce-sites.com
2024-09-11
136.146.25.6
gapinc.my.salesforce-sites.com
2023-10-16
13.110.43.165
apecschoolsinc.my.salesforce-sites.com
2024-11-06
34.211.108.45
lvmh-csc.my.salesforce-sites.com
2023-11-24
85.222.152.142
radha-fsc.my.salesforce-sites.com
2023-08-31
13.110.43.231
lfdfsc.my.salesforce-sites.com
2024-08-25
136.146.32.3
psc.my.salesforce-sites.com
2024-09-21
3.78.176.92
avc.my.salesforce-sites.com
2024-11-03
34.211.108.46
jp-pwc.my.salesforce-sites.com
2024-11-01
161.71.131.65
bankhead.my.salesforce-sites.com
2024-10-05
34.211.108.45
acolad.my.salesforce-sites.com
2024-10-05
34.211.108.46
babsongrad.my.salesforce-sites.com
2024-10-05
34.211.108.45
mourad.my.salesforce-sites.com
2024-03-09
160.8.251.142
3ddd.my.salesforce-sites.com
2024-10-05
34.211.108.47
pcl20-dev-ed.my.salesforce-sites.com
2024-07-14
13.110.252.226
accenture230-dev-ed.my.salesforce-sites.com
2024-07-14
13.109.189.60
crms40-dev-ed.my.salesforce-sites.com
2023-11-24
85.222.152.142
stan21-dev-ed.my.salesforce-sites.com
2024-08-20
160.8.13.143
awcomputing-1a1-dev-ed.my.salesforce-sites.com
2024-04-23
160.8.188.20
olive1-dev-ed.my.salesforce-sites.com
2024-05-14
85.222.154.58
tom1-dev-ed.my.salesforce-sites.com
2024-05-14
136.146.44.120
nativevideodev1-dev-ed.my.salesforce-sites.com
2024-05-14
160.8.247.61
kevdev1-dev-ed.my.salesforce-sites.com
2023-11-24
85.222.152.14
forcecom502-dev-ed.my.salesforce-sites.com
2023-11-24
13.110.253.98
u02-dev-ed.my.salesforce-sites.com
2023-10-31
85.222.154.142
accenturecom272-dev-ed.my.salesforce-sites.com
2023-08-31
160.8.253.35
devhub2-dev-ed.my.salesforce-sites.com
2023-10-31
161.71.2.129
pardotplayground2-dev-ed.my.salesforce-sites.com
2024-05-23
13.110.69.234
aom2-dev-ed.my.salesforce-sites.com
2024-10-14
13.110.60.162
logindemo2-dev-ed.my.salesforce-sites.com
2023-08-31
160.8.242.8
ashish3-dev-ed.my.salesforce-sites.com
2024-08-21
160.8.239.20
googlemailcom4-dev-ed.my.salesforce-sites.com
2023-10-18
160.8.240.133
cpqtestcom4-dev-ed.my.salesforce-sites.com
2023-10-18
160.8.11.133
jenkinstestco225-dev-ed.my.salesforce-sites.com
2024-10-04
13.109.190.228
accenture-e5-dev-ed.my.salesforce-sites.com
2023-09-29
160.8.252.35
lorem5-dev-ed.my.salesforce-sites.com
2024-06-09
13.110.42.234
private206-dev-ed.my.salesforce-sites.com
2023-10-30
160.8.12.163
forcecom306-dev-ed.my.salesforce-sites.com
2023-11-24
13.110.251.226
na66-dev-ed.my.salesforce-sites.com
2024-04-30
13.110.36.55
company277-dev-ed.my.salesforce-sites.com
2023-10-30
160.8.13.35
private-f7-dev-ed.my.salesforce-sites.com
2024-04-30
160.8.184.17
abc-d8-dev-ed.my.salesforce-sites.com
2023-10-19
13.109.187.60
student689-dev-ed.my.salesforce-sites.com
2023-12-23
160.8.253.15
dataart-3a-dev-ed.my.salesforce-sites.com
2023-08-31
160.8.244.133
aaaaaa-dev-ed.my.salesforce-sites.com
2023-08-31
13.110.85.201
rasca-dev-ed.my.salesforce-sites.com
2024-05-23
85.222.154.142
cda-dev-ed.my.salesforce-sites.com
2024-04-23
160.8.184.20
adriana-dev-ed.my.salesforce-sites.com
2024-06-02
160.8.253.136
batna-dev-ed.my.salesforce-sites.com
2023-09-29
161.71.3.4
copa-dev-ed.my.salesforce-sites.com
2024-08-09
160.8.245.20
sora-dev-ed.my.salesforce-sites.com
2023-09-29
160.8.9.136
esa-dev-ed.my.salesforce-sites.com
2024-09-02
160.8.233.17
infonova-dev-ed.my.salesforce-sites.com
2023-10-31
85.222.153.142
informatica-b-dev-ed.my.salesforce-sites.com
2024-06-09
13.109.188.60
att-4b-dev-ed.my.salesforce-sites.com
2023-10-31
13.110.65.231
forcecom-5bb-dev-ed.my.salesforce-sites.com
2023-10-30
13.110.252.162
vonage-cb-dev-ed.my.salesforce-sites.com
2023-10-31
160.8.9.145
ml-c-dev-ed.my.salesforce-sites.com
2023-09-29
161.71.2.4
nttdata-12c-dev-ed.my.salesforce-sites.com
2023-10-30
160.8.244.133
astoundcommerce-5c-dev-ed.my.salesforce-sites.com
2024-04-23
160.8.185.17
testeacc-dev-ed.my.salesforce-sites.com
2023-11-16
136.146.24.216
brad-dev-ed.my.salesforce-sites.com
2024-04-18
160.8.248.151
bbd-dev-ed.my.salesforce-sites.com
2024-04-19
13.110.88.55
w3id-dev-ed.my.salesforce-sites.com
2024-05-27
136.146.33.249
botid-dev-ed.my.salesforce-sites.com
2023-09-29
160.8.245.8
digitall-e-dev-ed.my.salesforce-sites.com
2023-08-31
160.8.250.35
avenga-26e-dev-ed.my.salesforce-sites.com
2024-10-04
160.8.236.14
maxime-dev-ed.my.salesforce-sites.com
2023-12-23
160.8.14.15
lightningengine-dev-ed.my.salesforce-sites.com
2024-05-14
85.222.153.116
tse-dev-ed.my.salesforce-sites.com
2024-05-14
85.222.152.14
archive-dev-ed.my.salesforce-sites.com
2024-04-19
13.110.95.55
packagingdevorg-f-dev-ed.my.salesforce-sites.com
2023-08-31
161.71.1.4
af-dev-ed.my.salesforce-sites.com
2024-06-11
13.110.40.234
ebsf-dev-ed.my.salesforce-sites.com
2024-04-23
85.222.144.189
testebi-dev-ed.my.salesforce-sites.com
2024-08-09
85.222.155.14
solgari-dev-ed.my.salesforce-sites.com
2023-09-29
160.8.246.8
slk-dev-ed.my.salesforce-sites.com
2024-06-15
136.146.18.123
integrationk-dev-ed.my.salesforce-sites.com
2024-07-22
160.8.247.20
testpk-dev-ed.my.salesforce-sites.com
2024-05-14
160.8.251.110
bork-dev-ed.my.salesforce-sites.com
2024-06-11
160.8.250.58
maral-dev-ed.my.salesforce-sites.com
2024-07-22
85.222.154.58
incontrol-dev-ed.my.salesforce-sites.com
2024-05-14
85.222.155.116
pcomm-dev-ed.my.salesforce-sites.com
2024-04-09
13.110.38.183
forcecom-dev-ed.my.salesforce-sites.com
2023-11-24
13.110.252.98
zoom-dev-ed.my.salesforce-sites.com
2024-07-22
160.8.186.20
shin-dev-ed.my.salesforce-sites.com
2024-10-04
160.8.191.11
communication-dev-ed.my.salesforce-sites.com
2024-05-23
160.8.248.151
formation-dev-ed.my.salesforce-sites.com
2024-05-14
85.222.152.186
cico-dev-ed.my.salesforce-sites.com
2024-07-22
85.222.145.189
hippo-dev-ed.my.salesforce-sites.com
2024-06-27
160.8.238.14
alberto-dev-ed.my.salesforce-sites.com
2023-10-25
85.222.153.142
jppartner-dev-ed.my.salesforce-sites.com
2023-11-24
160.8.14.15
personaldeveloper-dev-ed.my.salesforce-sites.com
2023-10-31
160.8.254.142
accenturecas-dev-ed.my.salesforce-sites.com
2023-08-31
85.222.146.124
my-analytics-dev-ed.my.salesforce-sites.com
2023-10-31
160.8.242.19
jds-dev-ed.my.salesforce-sites.com
2023-11-24
160.8.252.15
alexis-dev-ed.my.salesforce-sites.com
2024-05-27
160.8.254.58
testbooks-dev-ed.my.salesforce-sites.com
2024-10-05
160.8.233.20
masterdevops-dev-ed.my.salesforce-sites.com
2024-09-27
160.8.236.20
excel4apps-dev-ed.my.salesforce-sites.com
2024-04-19
160.8.253.58
osrs-dev-ed.my.salesforce-sites.com
2024-07-22
160.8.251.136
dev-projects-dev-ed.my.salesforce-sites.com
2024-04-18
161.71.3.1
dev-project-dev-ed.my.salesforce-sites.com
2024-04-24
160.8.251.58
design-it-dev-ed.my.salesforce-sites.com
2023-11-24
160.8.249.142
ssoclient-dev-ed.my.salesforce-sites.com
2023-10-31
85.222.153.142
spot-dev-ed.my.salesforce-sites.com
2024-05-14
160.8.252.58
test-cart-dev-ed.my.salesforce-sites.com
2024-05-14
85.222.153.151
orgbtest-dev-ed.my.salesforce-sites.com
2024-05-14
160.8.250.136
intt-dev-ed.my.salesforce-sites.com
2024-05-14
13.110.67.24
twedev-dev-ed.my.salesforce-sites.com
2023-09-29
160.8.246.8
xpdev-dev-ed.my.salesforce-sites.com
2024-08-31
160.8.15.143
bptdev-dev-ed.my.salesforce-sites.com
2024-06-11
160.8.248.58
davdev-dev-ed.my.salesforce-sites.com
2024-04-23
85.222.154.186
gov-dev-ed.my.salesforce-sites.com
2024-04-09
85.222.144.189
sirenum-securityreview-dev-ed.my.salesforce-sites.com
2024-06-18
160.8.253.142
testnew-dev-ed.my.salesforce-sites.com
2024-05-14
85.222.154.110
devdx-dev-ed.my.salesforce-sites.com
2024-04-09
85.222.153.58
danny-dev-ed.my.salesforce-sites.com
2023-10-31
160.8.245.108
tuffshed.my.salesforce-sites.com
2024-06-12
136.146.37.240
arcomed.my.salesforce-sites.com
2024-10-05
34.211.108.47
ellwoodatfield.my.salesforce-sites.com
2023-08-31
13.51.222.132
arthritisqld.my.salesforce-sites.com
2024-11-03
34.211.108.45
imd.my.salesforce-sites.com
2023-11-24
160.8.250.142
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]