home *** CD-ROM | disk | FTP | other *** search
/ Chip 2009 November / Chip_2009.11_CD.iso / I386 / nusrmgr.cp_ / nusrmgr.cpl / HTML / PICTUREPAGE.JS < prev    next >
Encoding:
Text File  |  2008-04-14  |  6.6 KB  |  293 lines

  1. var _oSelectedItem = null;
  2. var _szTempFile = null;
  3. var _bHaveTemp = false;
  4. var _szPictureSource = null;
  5. var _oWIA = null;
  6. function PageInit()
  7. {
  8. var oUser = top.window.g_oSelectedUser;
  9. var bSelf = top.window.IsSelf();
  10. top.window.PopulateLeftPane(bSelf ? idRelatedTaskContent.innerHTML : null, idLearnAboutContent.innerHTML, idPreview.innerHTML);
  11. top.window.idPicture.src = oUser.setting("Picture");
  12. _szPictureSource = oUser.setting("PictureSource");
  13. if (_szPictureSource)
  14. {
  15. if (0 == _szPictureSource.length)
  16. _szPictureSource = null;
  17. else
  18. _szPictureSource = _szPictureSource.toLowerCase();
  19. }
  20. var szTitle = bSelf ? idPageTitle.innerHTML : idAltPageTitle.innerHTML;
  21. idPageTitle.innerHTML = szTitle.replace(/%1/g, top.window.GetUserDisplayName(oUser));
  22. idWelcome.ttText = top.window.L_Welcome_ToolTip;
  23. EnumPics(top.window.GetShell().NameSpace(35).Self.Path + "\\Microsoft\\User Account Pictures\\Default Pictures");
  24. window.setTimeout("InitCameraLink();", 0);
  25. idPictures.focus();
  26. }
  27. function ApplyPictureChange2(szPicture)
  28. {
  29. var oUser = top.window.g_oSelectedUser;
  30. if (unescape(szPicture) != oUser.setting("Picture"))
  31. {
  32. try
  33. {
  34. oUser.setting("Picture") = szPicture;
  35. top.window.g_Navigator.navigate("mainpage.htm", true);
  36. }
  37. catch (error)
  38. {
  39. var nErr = (error.number & 0x7fffffff);
  40. if (nErr == 87 || nErr == 0x70057 || nErr == 0xA0005 || nErr == 0x4005)
  41. {
  42. alert(top.window.L_UnknownImageType_ErrorMessage);
  43. return false;
  44. }
  45. else
  46. throw error;
  47. }
  48. }
  49. return true;
  50. }
  51. function ApplyPictureChange()
  52. {
  53. if (_oSelectedItem)
  54. ApplyPictureChange2(_oSelectedItem.firstChild.src);
  55. }
  56. function SelectItem(oItem)
  57. {
  58. if (_oSelectedItem)
  59. {
  60. _oSelectedItem.selected = false;
  61. _oSelectedItem.tabIndex = -1;
  62. }
  63. oItem.selected = true;
  64. oItem.tabIndex = 0;
  65. _oSelectedItem = oItem;
  66. }
  67. function OnClickPicture()
  68. {
  69. SelectItem(this);
  70. idOK.disabled = false;
  71. event.cancelBubble = true;
  72. }
  73. function DeselectItem()
  74. {
  75. if (_oSelectedItem)
  76. {
  77. _oSelectedItem.selected = false;
  78. _oSelectedItem = null;
  79. }
  80. idOK.disabled = true;
  81. }
  82. function OnLoadError(img)
  83. {
  84. img.parentElement.style.display = 'none';
  85. }
  86. function OnKeyDown()
  87. {
  88. if (event.keyCode >= 37 && event.keyCode <= 40)
  89. {
  90. var cx = this.offsetWidth;
  91. var cy = this.offsetHeight;
  92. var x = this.offsetLeft + (cx/2);
  93. var y = this.offsetTop + (cy/2);
  94. switch (event.keyCode)
  95. {
  96. case 37: 
  97. x -= cx;
  98. if (x < idPictures.scrollLeft)
  99. idPictures.scrollLeft -= cx;
  100. break;
  101. case 38: 
  102. y -= cy;
  103. if (y < idPictures.scrollTop)
  104. idPictures.scrollTop -= cy;
  105. break;
  106. case 39: 
  107. x += cx;
  108. if (x - idPictures.scrollLeft > idPictures.offsetWidth)
  109. idPictures.scrollLeft += cx;
  110. break;
  111. case 40: 
  112. y += cy;
  113. if (y - idPictures.scrollTop > idPictures.offsetHeight)
  114. idPictures.scrollTop += cy;
  115. break;
  116. }
  117. var oTarget = document.elementFromPoint(idPictures.offsetLeft - idPictures.scrollLeft + x, idPictures.offsetTop - idPictures.scrollTop + y);
  118. if (oTarget != null && idPictures.contains(oTarget) && idPictures != oTarget)
  119. {
  120. if (oTarget.tagName == "IMG")
  121. oTarget = oTarget.parentElement;
  122. if (oTarget != this)
  123. {
  124. this.tabIndex = -1;
  125. oTarget.tabIndex = 0;
  126. oTarget.focus();
  127. event.returnValue = false;
  128. }
  129. }
  130. }
  131. else if (event.keyCode == 27) 
  132. {
  133. event.returnValue = false;
  134. }
  135. }
  136. function AddPictureToList(oItem, szID, bNoDimensions)
  137. {
  138. if (!oItem)
  139. return;
  140. var span = document.createElement('<SPAN tabindex=-1 class="Selectable" paddingWidth=3 borderWidth=3></SPAN>');
  141. if (span)
  142. {
  143. span.onclick = OnClickPicture;
  144. span.ondblclick = ApplyPictureChange;
  145. span.onkeydown=OnKeyDown;
  146. span.title = oItem.name;
  147. if (szID)
  148. span.id = szID;
  149. span.innerHTML = '<IMG onerror="OnLoadError(this);"/>';
  150. if (true != bNoDimensions)
  151. span.firstChild.className = "PictureSize";
  152. idPictures.appendChild(span);
  153. var szPath = oItem.path;
  154. span.firstChild.src = "file:///" + szPath;
  155. span.firstChild.alt = oItem.name;
  156. if (_szPictureSource && _szPictureSource == szPath.toLowerCase() && span.style.display != 'none')
  157. SelectItem(span);
  158. }
  159. }
  160. function EnumPics(szFolder)
  161. {
  162. var oShell = top.window.GetShell();
  163. if (oShell)
  164. {
  165. var oFolder = oShell.Namespace(szFolder);
  166. if (oFolder)
  167. {
  168. var oFolderItems = oFolder.Items();
  169. if (oFolderItems)
  170. {
  171. var cItems = oFolderItems.count;
  172. for (var i = 0; i < cItems; i++)
  173. AddPictureToList(oFolderItems.Item(i));
  174. }
  175. }
  176. if (_szPictureSource && !_oSelectedItem)
  177. {
  178. AddPictureToList(oShell.Namespace(0).ParseName(top.window.idPicture.src), null, true);
  179. SelectItem(idPictures.lastChild);
  180. }
  181. if (!_oSelectedItem && idPictures.firstChild)
  182. idPictures.firstChild.tabIndex = 0;
  183. }
  184. }
  185. function SetTempPicture(szPath)
  186. {
  187. var szPrevious = null;
  188. if (!_bHaveTemp)
  189. {
  190. AddPictureToList(top.window.GetShell().Namespace(0).ParseName(szPath), "idTempPicture");
  191. _bHaveTemp = true;
  192. }
  193. else
  194. {
  195. idTempPicture.style.display = 'block';
  196. var img = idTempPicture.firstChild;
  197. szPrevious = img.src;
  198. img.src = "file:///" + szPath;
  199. }
  200. if (idTempPicture.style.display == 'none')
  201. {
  202. if (szPrevious)
  203. {
  204. idTempPicture.style.display = 'block';
  205. idTempPicture.firstChild.src = szPrevious;
  206. }
  207. alert(top.window.L_UnknownImageType_ErrorMessage);
  208. }
  209. else
  210. idTempPicture.click();
  211. }
  212. function FindOtherPictures()
  213. {
  214. try
  215. {
  216. var commDialog = new ActiveXObject("UserAccounts.CommonDialog");
  217. commDialog.Flags = 0x02001804;
  218. commDialog.Filter = L_OpenFilesFilter_Text;
  219. commDialog.FilterIndex = 1;
  220. commDialog.Owner = top.window.document.title;
  221. var szPath = top.window.g_szCustomPicturePath;
  222. if (szPath)
  223. commDialog.FileName = szPath;
  224. try
  225. {
  226. commDialog.InitialDir = top.window.GetShell().NameSpace(39).Self.Path;
  227. }
  228. catch (e)
  229. {
  230. commDialog.InitialDir = "";
  231. }
  232. if (commDialog.ShowOpen())
  233. {
  234. szPath = commDialog.FileName;
  235. if (ApplyPictureChange2(szPath))
  236. top.window.g_szCustomPicturePath = szPath;
  237. }
  238. }
  239. catch (error)
  240. {
  241. idBrowse.disabled = 'true';
  242. }
  243. }
  244. function InitCameraLink()
  245. {
  246. var bCamera = false;
  247. try
  248. {
  249. _oWIA = new ActiveXObject("Wia.Script");
  250. bCamera = (_oWIA.Devices.length > 0);
  251. }
  252. catch (e)
  253. {
  254. }
  255. if (bCamera)
  256. {
  257. _szTempFile = top.window.GetWShell().ExpandEnvironmentStrings("%TEMP%\\") + top.window.GetUserDisplayName(top.window.g_oSelectedUser) + ".bmp";
  258. idTakeAPicture.style.display = 'block';
  259. }
  260. else
  261. idTakeAPicture.removeNode(true);
  262. }
  263. function TakeAPicture()
  264. {
  265. try
  266. {
  267. var oItem = _oWIA.Create(null);
  268. if (oItem)
  269. {
  270. var oNewPictures = oItem.GetItemsFromUI(2,1);
  271. if (oNewPictures && oNewPictures.length > 0)
  272. {
  273. oNewPictures.Item(0).Transfer(_szTempFile, false);
  274. SetTempPicture(_szTempFile);
  275. }
  276. }
  277. }
  278. catch (error)
  279. {
  280. var nErr = (error.number & 0xffffff);
  281. if (nErr == 0x210015 || nErr == 0x210005) 
  282. alert(top.window.L_NoCamera_ErrorMessage);
  283. else
  284. throw error;
  285. }
  286. }
  287. function onUnLoad()
  288. {
  289. if (_szTempFile)
  290. {
  291. }
  292. }
  293.