PageRenderTime 53ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 1ms

/trunk/modules/PDFSettings/serverfiles/include/js/general.js

https://code.google.com/p/vtiger-ru-fork/
JavaScript | 3928 lines | 3190 code | 529 blank | 209 comment | 956 complexity | 9de84cc09989e57b5a6a36fba811694d MD5 | raw file
Possible License(s): LGPL-2.1, MPL-2.0-no-copyleft-exception, GPL-2.0, LGPL-3.0

Large files files are truncated, but you can click here to view the full file

  1. /*********************************************************************************
  2. ** The contents of this file are subject to the vtiger CRM Public License Version 1.0
  3. * ("License"); You may not use this file except in compliance with the License
  4. * The Original Code is: vtiger CRM Open Source
  5. * The Initial Developer of the Original Code is vtiger.
  6. * Portions created by vtiger are Copyright (C) vtiger.
  7. * All Rights Reserved.
  8. ********************************************************************************/
  9. //Utility Functions
  10. var gValidationCall='';
  11. if (document.all)
  12. var browser_ie=true
  13. else if (document.layers)
  14. var browser_nn4=true
  15. else if (document.layers || (!document.all && document.getElementById))
  16. var browser_nn6=true
  17. var gBrowserAgent = navigator.userAgent.toLowerCase();
  18. function hideSelect()
  19. {
  20. var oselect_array = document.getElementsByTagName('SELECT');
  21. for(var i=0;i<oselect_array.length;i++)
  22. {
  23. oselect_array[i].style.display = 'none';
  24. }
  25. }
  26. function showSelect()
  27. {
  28. var oselect_array = document.getElementsByTagName('SELECT');
  29. for(var i=0;i<oselect_array.length;i++)
  30. {
  31. oselect_array[i].style.display = 'block';
  32. }
  33. }
  34. function getObj(n,d) {
  35. var p,i,x;
  36. if(!d) {
  37. d=document;
  38. }
  39. if(n != undefined) {
  40. if((p=n.indexOf("?"))>0&&parent.frames.length) {
  41. d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
  42. }
  43. }
  44. if(d.getElementById) {
  45. x=d.getElementById(n);
  46. // IE7 was returning form element with name = n (if there was multiple instance)
  47. // But not firefox, so we are making a double check
  48. if(x && x.id != n) x = false;
  49. }
  50. for(i=0;!x && i<d.forms.length;i++) {
  51. x=d.forms[i][n];
  52. }
  53. for(i=0; !x && d.layers && i<d.layers.length;i++) {
  54. x=getObj(n,d.layers[i].document);
  55. }
  56. if(!x && !(x=d[n]) && d.all) {
  57. x=d.all[n];
  58. }
  59. if(typeof x == 'string') {
  60. x=null;
  61. }
  62. return x;
  63. }
  64. function getOpenerObj(n) {
  65. return getObj(n,opener.document)
  66. }
  67. function findPosX(obj) {
  68. var curleft = 0;
  69. if (document.getElementById || document.all) {
  70. while (obj.offsetParent) {
  71. curleft += obj.offsetLeft
  72. obj = obj.offsetParent;
  73. }
  74. } else if (document.layers) {
  75. curleft += obj.x;
  76. }
  77. return curleft;
  78. }
  79. function findPosY(obj) {
  80. var curtop = 0;
  81. if (document.getElementById || document.all) {
  82. while (obj.offsetParent) {
  83. curtop += obj.offsetTop
  84. obj = obj.offsetParent;
  85. }
  86. } else if (document.layers) {
  87. curtop += obj.y;
  88. }
  89. return curtop;
  90. }
  91. function clearTextSelection() {
  92. if (browser_ie) document.selection.empty();
  93. else if (browser_nn4 || browser_nn6) window.getSelection().removeAllRanges();
  94. }
  95. // Setting cookies
  96. function set_cookie ( name, value, exp_y, exp_m, exp_d, path, domain, secure )
  97. {
  98. var cookie_string = name + "=" + escape ( value );
  99. if (exp_y) //delete_cookie(name)
  100. {
  101. var expires = new Date ( exp_y, exp_m, exp_d );
  102. cookie_string += "; expires=" + expires.toGMTString();
  103. }
  104. if (path) cookie_string += "; path=" + escape ( path );
  105. if (domain) cookie_string += "; domain=" + escape ( domain );
  106. if (secure) cookie_string += "; secure";
  107. document.cookie = cookie_string;
  108. }
  109. // Retrieving cookies
  110. function get_cookie(cookie_name)
  111. {
  112. var results = document.cookie.match(cookie_name + '=(.*?)(;|$)');
  113. if (results) return (unescape(results[1]));
  114. else return null;
  115. }
  116. // Delete cookies
  117. function delete_cookie( cookie_name )
  118. {
  119. var cookie_date = new Date ( ); // current date & time
  120. cookie_date.setTime ( cookie_date.getTime() - 1 );
  121. document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
  122. }
  123. //End of Utility Functions
  124. function emptyCheck(fldName,fldLabel, fldType) {
  125. var currObj = getObj(fldName);
  126. if (fldType=="text") {
  127. if (currObj.value.replace(/^\s+/g, '').replace(/\s+$/g, '').length==0) {
  128. alert(fldLabel+alert_arr.CANNOT_BE_EMPTY)
  129. try {
  130. currObj.focus()
  131. } catch(error) {
  132. // Fix for IE: If element or its wrapper around it is hidden, setting focus will fail
  133. // So using the try { } catch(error) { }
  134. }
  135. return false
  136. }
  137. else{
  138. return true
  139. }
  140. } else if((fldType == "textarea")
  141. && (typeof(CKEDITOR)!=='undefined' && CKEDITOR.intances[fldName] !== 'undefined')) {
  142. var textObj = CKEDITOR.intances[fldName];
  143. var textValue = textObj.getData();
  144. if (trim(textValue) == '' || trim(textValue) == '<br>') {
  145. alert(fldLabel+alert_arr.CANNOT_BE_NONE);
  146. return false;
  147. } else{
  148. return true;
  149. }
  150. } else{
  151. if (trim(currObj.value) == '') {
  152. alert(fldLabel+alert_arr.CANNOT_BE_NONE)
  153. return false
  154. } else
  155. return true
  156. }
  157. }
  158. function patternValidate(fldName,fldLabel,type) {
  159. var currObj=getObj(fldName)
  160. if (type.toUpperCase()=="YAHOO") //Email ID validation
  161. {
  162. //yahoo Id validation
  163. var re=new RegExp(/^[a-z0-9]([a-z0-9_\-\.]*)@([y][a][h][o][o])(\.[a-z]{2,3}(\.[a-z]{2}){0,2})$/)
  164. }
  165. if (type.toUpperCase()=="EMAIL") //Email ID validation
  166. {
  167. /*changes made to fix -- ticket#3278 & ticket#3461
  168. var re=new RegExp(/^.+@.+\..+$/)*/
  169. //Changes made to fix tickets #4633, #5111 to accomodate all possible email formats
  170. var re=new RegExp(/^[a-zA-Z0-9]+([\_\-\.]*[a-zA-Z0-9]+[\_\-]?)*@[a-zA-Z0-9]+([\_\-]?[a-zA-Z0-9]+)*\.+([\-\_]?[a-zA-Z0-9])+(\.?[a-zA-Z0-9]+)*$/)
  171. }
  172. if (type.toUpperCase()=="DATE") {//DATE validation
  173. //YMD
  174. //var reg1 = /^\d{2}(\-|\/|\.)\d{1,2}\1\d{1,2}$/ //2 digit year
  175. //var re = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/ //4 digit year
  176. //MYD
  177. //var reg1 = /^\d{1,2}(\-|\/|\.)\d{2}\1\d{1,2}$/
  178. //var reg2 = /^\d{1,2}(\-|\/|\.)\d{4}\1\d{1,2}$/
  179. //DMY
  180. //var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/
  181. //var reg2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
  182. switch (userDateFormat) {
  183. case "yyyy-mm-dd" :
  184. var re = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
  185. break;
  186. case "mm-dd-yyyy" :
  187. case "dd-mm-yyyy" :
  188. var re = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
  189. }
  190. }
  191. if (type.toUpperCase()=="TIME") {//TIME validation
  192. var re = /^\d{1,2}\:\d{1,2}$/
  193. }
  194. //Asha: Remove spaces on either side of a Email id before validating
  195. if (type.toUpperCase()=="EMAIL" || type.toUpperCase() == "DATE") currObj.value = trim(currObj.value);
  196. if (!re.test(currObj.value)) {
  197. alert(alert_arr.ENTER_VALID + fldLabel + " ("+type+")");
  198. try {
  199. currObj.focus()
  200. } catch(error) {
  201. // Fix for IE: If element or its wrapper around it is hidden, setting focus will fail
  202. // So using the try { } catch(error) { }
  203. }
  204. return false
  205. }
  206. else return true
  207. }
  208. function splitDateVal(dateval) {
  209. var datesep;
  210. var dateelements = new Array(3);
  211. if (dateval.indexOf("-")>=0) datesep="-"
  212. else if (dateval.indexOf(".")>=0) datesep="."
  213. else if (dateval.indexOf("/")>=0) datesep="/"
  214. switch (userDateFormat) {
  215. case "yyyy-mm-dd" :
  216. dateelements[0]=dateval.substr(dateval.lastIndexOf(datesep)+1,dateval.length) //dd
  217. dateelements[1]=dateval.substring(dateval.indexOf(datesep)+1,dateval.lastIndexOf(datesep)) //mm
  218. dateelements[2]=dateval.substring(0,dateval.indexOf(datesep)) //yyyyy
  219. break;
  220. case "mm-dd-yyyy" :
  221. dateelements[0]=dateval.substring(dateval.indexOf(datesep)+1,dateval.lastIndexOf(datesep))
  222. dateelements[1]=dateval.substring(0,dateval.indexOf(datesep))
  223. dateelements[2]=dateval.substr(dateval.lastIndexOf(datesep)+1,dateval.length)
  224. break;
  225. case "dd-mm-yyyy" :
  226. dateelements[0]=dateval.substring(0,dateval.indexOf(datesep))
  227. dateelements[1]=dateval.substring(dateval.indexOf(datesep)+1,dateval.lastIndexOf(datesep))
  228. dateelements[2]=dateval.substr(dateval.lastIndexOf(datesep)+1,dateval.length)
  229. }
  230. return dateelements;
  231. }
  232. function compareDates(date1,fldLabel1,date2,fldLabel2,type) {
  233. var ret=true
  234. switch (type) {
  235. case 'L' : if (date1>=date2) {//DATE1 VALUE LESS THAN DATE2
  236. alert(fldLabel1+ alert_arr.SHOULDBE_LESS +fldLabel2)
  237. ret=false
  238. }
  239. break;
  240. case 'LE' : if (date1>date2) {//DATE1 VALUE LESS THAN OR EQUAL TO DATE2
  241. alert(fldLabel1+alert_arr.SHOULDBE_LESS_EQUAL+fldLabel2)
  242. ret=false
  243. }
  244. break;
  245. case 'E' : if (date1!=date2) {//DATE1 VALUE EQUAL TO DATE
  246. alert(fldLabel1+alert_arr.SHOULDBE_EQUAL+fldLabel2)
  247. ret=false
  248. }
  249. break;
  250. case 'G' : if (date1<=date2) {//DATE1 VALUE GREATER THAN DATE2
  251. alert(fldLabel1+alert_arr.SHOULDBE_GREATER+fldLabel2)
  252. ret=false
  253. }
  254. break;
  255. case 'GE' : if (date1<date2) {//DATE1 VALUE GREATER THAN OR EQUAL TO DATE2
  256. alert(fldLabel1+alert_arr.SHOULDBE_GREATER_EQUAL+fldLabel2)
  257. ret=false
  258. }
  259. break;
  260. }
  261. if (ret==false) return false
  262. else return true
  263. }
  264. function dateTimeValidate(dateFldName,timeFldName,fldLabel,type) {
  265. if(patternValidate(dateFldName,fldLabel,"DATE")==false)
  266. return false;
  267. dateval=getObj(dateFldName).value.replace(/^\s+/g, '').replace(/\s+$/g, '')
  268. var dateelements=splitDateVal(dateval)
  269. dd=dateelements[0]
  270. mm=dateelements[1]
  271. yyyy=dateelements[2]
  272. if (dd<1 || dd>31 || mm<1 || mm>12 || yyyy<1 || yyyy<1000) {
  273. alert(alert_arr.ENTER_VALID+fldLabel)
  274. try { getObj(dateFldName).focus() } catch(error) { }
  275. return false
  276. }
  277. if ((mm==2) && (dd>29)) {//checking of no. of days in february month
  278. alert(alert_arr.ENTER_VALID+fldLabel)
  279. try { getObj(dateFldName).focus() } catch(error) { }
  280. return false
  281. }
  282. if ((mm==2) && (dd>28) && ((yyyy%4)!=0)) {//leap year checking
  283. alert(alert_arr.ENTER_VALID+fldLabel)
  284. try { getObj(dateFldName).focus() } catch(error) { }
  285. return false
  286. }
  287. switch (parseInt(mm)) {
  288. case 2 :
  289. case 4 :
  290. case 6 :
  291. case 9 :
  292. case 11 : if (dd>30) {
  293. alert(alert_arr.ENTER_VALID+fldLabel)
  294. try { getObj(dateFldName).focus() } catch(error) { }
  295. return false
  296. }
  297. }
  298. if (patternValidate(timeFldName,fldLabel,"TIME")==false)
  299. return false
  300. var timeval=getObj(timeFldName).value.replace(/^\s+/g, '').replace(/\s+$/g, '')
  301. var hourval=parseInt(timeval.substring(0,timeval.indexOf(":")))
  302. var minval=parseInt(timeval.substring(timeval.indexOf(":")+1,timeval.length))
  303. var currObj=getObj(timeFldName)
  304. if (hourval>23 || minval>59) {
  305. alert(alert_arr.ENTER_VALID+fldLabel)
  306. try { currObj.focus() } catch(error) { }
  307. return false
  308. }
  309. var currdate=new Date()
  310. var chkdate=new Date()
  311. chkdate.setYear(yyyy)
  312. chkdate.setMonth(mm-1)
  313. chkdate.setDate(dd)
  314. chkdate.setHours(hourval)
  315. chkdate.setMinutes(minval)
  316. if (type!="OTH") {
  317. if (!compareDates(chkdate,fldLabel,currdate,"current date & time",type)) {
  318. try { getObj(dateFldName).focus() } catch(error) { }
  319. return false
  320. } else return true;
  321. } else return true;
  322. }
  323. function dateTimeComparison(dateFldName1,timeFldName1,fldLabel1,dateFldName2,timeFldName2,fldLabel2,type) {
  324. var dateval1=getObj(dateFldName1).value.replace(/^\s+/g, '').replace(/\s+$/g, '')
  325. var dateval2=getObj(dateFldName2).value.replace(/^\s+/g, '').replace(/\s+$/g, '')
  326. var dateelements1=splitDateVal(dateval1)
  327. var dateelements2=splitDateVal(dateval2)
  328. dd1=dateelements1[0]
  329. mm1=dateelements1[1]
  330. yyyy1=dateelements1[2]
  331. dd2=dateelements2[0]
  332. mm2=dateelements2[1]
  333. yyyy2=dateelements2[2]
  334. var timeval1=getObj(timeFldName1).value.replace(/^\s+/g, '').replace(/\s+$/g, '')
  335. var timeval2=getObj(timeFldName2).value.replace(/^\s+/g, '').replace(/\s+$/g, '')
  336. var hh1=timeval1.substring(0,timeval1.indexOf(":"))
  337. var min1=timeval1.substring(timeval1.indexOf(":")+1,timeval1.length)
  338. var hh2=timeval2.substring(0,timeval2.indexOf(":"))
  339. var min2=timeval2.substring(timeval2.indexOf(":")+1,timeval2.length)
  340. var date1=new Date()
  341. var date2=new Date()
  342. date1.setYear(yyyy1)
  343. date1.setMonth(mm1-1)
  344. date1.setDate(dd1)
  345. date1.setHours(hh1)
  346. date1.setMinutes(min1)
  347. date2.setYear(yyyy2)
  348. date2.setMonth(mm2-1)
  349. date2.setDate(dd2)
  350. date2.setHours(hh2)
  351. date2.setMinutes(min2)
  352. if (type!="OTH") {
  353. if (!compareDates(date1,fldLabel1,date2,fldLabel2,type)) {
  354. try { getObj(dateFldName1).focus() } catch(error) { }
  355. return false
  356. } else return true;
  357. } else return true;
  358. }
  359. function dateValidate(fldName,fldLabel,type) {
  360. if(patternValidate(fldName,fldLabel,"DATE")==false)
  361. return false;
  362. dateval=getObj(fldName).value.replace(/^\s+/g, '').replace(/\s+$/g, '')
  363. var dateelements=splitDateVal(dateval)
  364. dd=dateelements[0]
  365. mm=dateelements[1]
  366. yyyy=dateelements[2]
  367. if (dd<1 || dd>31 || mm<1 || mm>12 || yyyy<1 || yyyy<1000) {
  368. alert(alert_arr.ENTER_VALID+fldLabel)
  369. try { getObj(fldName).focus() } catch(error) { }
  370. return false
  371. }
  372. if ((mm==2) && (dd>29)) {//checking of no. of days in february month
  373. alert(alert_arr.ENTER_VALID+fldLabel)
  374. try { getObj(fldName).focus() } catch(error) { }
  375. return false
  376. }
  377. if ((mm==2) && (dd>28) && ((yyyy%4)!=0)) {//leap year checking
  378. alert(alert_arr.ENTER_VALID+fldLabel)
  379. try { getObj(fldName).focus() } catch(error) { }
  380. return false
  381. }
  382. switch (parseInt(mm)) {
  383. case 2 :
  384. case 4 :
  385. case 6 :
  386. case 9 :
  387. case 11 : if (dd>30) {
  388. alert(alert_arr.ENTER_VALID+fldLabel)
  389. try { getObj(fldName).focus() } catch(error) { }
  390. return false
  391. }
  392. }
  393. var currdate=new Date()
  394. var chkdate=new Date()
  395. chkdate.setYear(yyyy)
  396. chkdate.setMonth(mm-1)
  397. chkdate.setDate(dd)
  398. if (type!="OTH") {
  399. if (!compareDates(chkdate,fldLabel,currdate,"current date",type)) {
  400. try { getObj(fldName).focus() } catch(error) { }
  401. return false
  402. } else return true;
  403. } else return true;
  404. }
  405. function dateComparison(fldName1,fldLabel1,fldName2,fldLabel2,type) {
  406. var dateval1=getObj(fldName1).value.replace(/^\s+/g, '').replace(/\s+$/g, '')
  407. var dateval2=getObj(fldName2).value.replace(/^\s+/g, '').replace(/\s+$/g, '')
  408. var dateelements1=splitDateVal(dateval1)
  409. var dateelements2=splitDateVal(dateval2)
  410. dd1=dateelements1[0]
  411. mm1=dateelements1[1]
  412. yyyy1=dateelements1[2]
  413. dd2=dateelements2[0]
  414. mm2=dateelements2[1]
  415. yyyy2=dateelements2[2]
  416. var date1=new Date()
  417. var date2=new Date()
  418. date1.setYear(yyyy1)
  419. date1.setMonth(mm1-1)
  420. date1.setDate(dd1)
  421. date2.setYear(yyyy2)
  422. date2.setMonth(mm2-1)
  423. date2.setDate(dd2)
  424. if (type!="OTH") {
  425. if (!compareDates(date1,fldLabel1,date2,fldLabel2,type)) {
  426. try { getObj(fldName1).focus() } catch(error) { }
  427. return false
  428. } else return true;
  429. } else return true
  430. }
  431. function timeValidate(fldName,fldLabel,type) {
  432. if (patternValidate(fldName,fldLabel,"TIME")==false)
  433. return false
  434. var timeval=getObj(fldName).value.replace(/^\s+/g, '').replace(/\s+$/g, '')
  435. var hourval=parseInt(timeval.substring(0,timeval.indexOf(":")))
  436. var minval=parseInt(timeval.substring(timeval.indexOf(":")+1,timeval.length))
  437. var currObj=getObj(fldName)
  438. if (hourval>23 || minval>59) {
  439. alert(alert_arr.ENTER_VALID+fldLabel)
  440. try { currObj.focus() } catch(error) { }
  441. return false
  442. }
  443. var currtime=new Date()
  444. var chktime=new Date()
  445. chktime.setHours(hourval)
  446. chktime.setMinutes(minval)
  447. if (type!="OTH") {
  448. if (!compareDates(chktime,fldLabel,currtime,"current time",type)) {
  449. try { getObj(fldName).focus() } catch(error) { }
  450. return false
  451. } else return true;
  452. } else return true
  453. }
  454. function timeComparison(fldName1,fldLabel1,fldName2,fldLabel2,type) {
  455. var timeval1=getObj(fldName1).value.replace(/^\s+/g, '').replace(/\s+$/g, '')
  456. var timeval2=getObj(fldName2).value.replace(/^\s+/g, '').replace(/\s+$/g, '')
  457. var hh1=timeval1.substring(0,timeval1.indexOf(":"))
  458. var min1=timeval1.substring(timeval1.indexOf(":")+1,timeval1.length)
  459. var hh2=timeval2.substring(0,timeval2.indexOf(":"))
  460. var min2=timeval2.substring(timeval2.indexOf(":")+1,timeval2.length)
  461. var time1=new Date()
  462. var time2=new Date()
  463. //added to fix the ticket #5028
  464. if(fldName1 == "time_end" && (getObj("due_date") && getObj("date_start")))
  465. {
  466. var due_date=getObj("due_date").value.replace(/^\s+/g, '').replace(/\s+$/g, '')
  467. var start_date=getObj("date_start").value.replace(/^\s+/g, '').replace(/\s+$/g, '')
  468. dateval1 = splitDateVal(due_date);
  469. dateval2 = splitDateVal(start_date);
  470. dd1 = dateval1[0];
  471. mm1 = dateval1[1];
  472. yyyy1 = dateval1[2];
  473. dd2 = dateval2[0];
  474. mm2 = dateval2[1];
  475. yyyy2 = dateval2[2];
  476. time1.setYear(yyyy1)
  477. time1.setMonth(mm1-1)
  478. time1.setDate(dd1)
  479. time2.setYear(yyyy2)
  480. time2.setMonth(mm2-1)
  481. time2.setDate(dd2)
  482. }
  483. //end
  484. time1.setHours(hh1)
  485. time1.setMinutes(min1)
  486. time2.setHours(hh2)
  487. time2.setMinutes(min2)
  488. if (type!="OTH") {
  489. if (!compareDates(time1,fldLabel1,time2,fldLabel2,type)) {
  490. try { getObj(fldName1).focus() } catch(error) { }
  491. return false
  492. } else return true;
  493. } else return true;
  494. }
  495. function numValidate(fldName,fldLabel,format,neg) {
  496. var val=getObj(fldName).value.replace(/^\s+/g, '').replace(/\s+$/g, '')
  497. if (format!="any") {
  498. if (isNaN(val)) {
  499. var invalid=true
  500. } else {
  501. var format=format.split(",")
  502. var splitval=val.split(".")
  503. if (neg==true) {
  504. if (splitval[0].indexOf("-")>=0) {
  505. if (splitval[0].length-1>format[0])
  506. invalid=true
  507. } else {
  508. if (splitval[0].length>format[0])
  509. invalid=true
  510. }
  511. } else {
  512. if (val<0)
  513. invalid=true
  514. else if (format[0]==2 && splitval[0]==100 && (!splitval[1] || splitval[1]==0))
  515. invalid=false
  516. else if (splitval[0].length>format[0])
  517. invalid=true
  518. }
  519. if (splitval[1])
  520. if (splitval[1].length>format[1])
  521. invalid=true
  522. }
  523. if (invalid==true) {
  524. alert(alert_arr.INVALID+fldLabel)
  525. try { getObj(fldName).focus() } catch(error) { }
  526. return false
  527. } else return true
  528. } else {
  529. // changes made -- to fix the ticket#3272
  530. var splitval=val.split(".")
  531. var arr_len = splitval.length;
  532. var len = 0;
  533. if(fldName == "probability" || fldName == "commissionrate")
  534. {
  535. if(arr_len > 1)
  536. len = splitval[1].length;
  537. if(isNaN(val))
  538. {
  539. alert(alert_arr.INVALID+fldLabel)
  540. try { getObj(fldName).focus() } catch(error) { }
  541. return false
  542. }
  543. else if(splitval[0] > 100 || len > 3 || (splitval[0] >= 100 && splitval[1] > 0))
  544. {
  545. alert( fldLabel + alert_arr.EXCEEDS_MAX);
  546. return false;
  547. }
  548. }
  549. else if(splitval[0]>18446744073709551615)
  550. {
  551. alert( fldLabel + alert_arr.EXCEEDS_MAX);
  552. return false;
  553. }
  554. if (neg==true)
  555. var re=/^(-|)(\d)*(\.)?\d+(\.\d\d*)*$/
  556. else
  557. var re=/^(\d)*(\.)?\d+(\.\d\d*)*$/
  558. }
  559. //for precision check. ie.number must contains only one "."
  560. var dotcount=0;
  561. for (var i = 0; i < val.length; i++)
  562. {
  563. if (val.charAt(i) == ".")
  564. dotcount++;
  565. }
  566. if(dotcount>1)
  567. {
  568. alert(alert_arr.INVALID+fldLabel)
  569. try { getObj(fldName).focus() } catch(error) { }
  570. return false;
  571. }
  572. if (!re.test(val)) {
  573. alert(alert_arr.INVALID+fldLabel)
  574. try { getObj(fldName).focus() } catch(error) { }
  575. return false
  576. } else return true
  577. }
  578. function intValidate(fldName,fldLabel) {
  579. var val=getObj(fldName).value.replace(/^\s+/g, '').replace(/\s+$/g, '')
  580. if (isNaN(val) || (val.indexOf(".")!=-1 && fldName != 'potential_amount' && fldName != 'list_price'))
  581. {
  582. alert(alert_arr.INVALID+fldLabel)
  583. try { getObj(fldName).focus() } catch(error) { }
  584. return false
  585. }
  586. else if((fldName != 'employees' || fldName != 'noofemployees') && (val < -2147483648 || val > 2147483647))
  587. {
  588. alert(fldLabel +alert_arr.OUT_OF_RANGE);
  589. return false;
  590. }
  591. else if((fldName == 'employees' || fldName != 'noofemployees') && (val < 0 || val > 2147483647))
  592. {
  593. alert(fldLabel +alert_arr.OUT_OF_RANGE);
  594. return false;
  595. }
  596. else
  597. {
  598. return true
  599. }
  600. }
  601. function numConstComp(fldName,fldLabel,type,constval) {
  602. var val=parseFloat(getObj(fldName).value.replace(/^\s+/g, '').replace(/\s+$/g, ''))
  603. constval=parseFloat(constval)
  604. var ret=true
  605. switch (type) {
  606. case "L" : if (val>=constval) {
  607. alert(fldLabel+alert_arr.SHOULDBE_LESS+constval)
  608. ret=false
  609. }
  610. break;
  611. case "LE" : if (val>constval) {
  612. alert(fldLabel+alert_arr.SHOULDBE_LESS_EQUAL+constval)
  613. ret=false
  614. }
  615. break;
  616. case "E" : if (val!=constval) {
  617. alert(fldLabel+alert_arr.SHOULDBE_EQUAL+constval)
  618. ret=false
  619. }
  620. break;
  621. case "NE" : if (val==constval) {
  622. alert(fldLabel+alert_arr.SHOULDNOTBE_EQUAL+constval)
  623. ret=false
  624. }
  625. break;
  626. case "G" : if (val<=constval) {
  627. alert(fldLabel+alert_arr.SHOULDBE_GREATER+constval)
  628. ret=false
  629. }
  630. break;
  631. case "GE" : if (val<constval) {
  632. alert(fldLabel+alert_arr.SHOULDBE_GREATER_EQUAL+constval)
  633. ret=false
  634. }
  635. break;
  636. }
  637. if (ret==false) {
  638. try { getObj(fldName).focus() } catch(error) { }
  639. return false
  640. } else return true;
  641. }
  642. /* To get only filename from a given complete file path */
  643. function getFileNameOnly(filename) {
  644. var onlyfilename = filename;
  645. // Normalize the path (to make sure we use the same path separator)
  646. var filename_normalized = filename.replace(/\\/g, '/');
  647. if(filename_normalized.lastIndexOf("/") != -1) {
  648. onlyfilename = filename_normalized.substring(filename_normalized.lastIndexOf("/") + 1);
  649. }
  650. return onlyfilename;
  651. }
  652. /* Function to validate the filename */
  653. function validateFilename(form_ele) {
  654. if (form_ele.value == '') return true;
  655. var value = getFileNameOnly(form_ele.value);
  656. // Color highlighting logic
  657. var err_bg_color = "#FFAA22";
  658. if (typeof(form_ele.bgcolor) == "undefined") {
  659. form_ele.bgcolor = form_ele.style.backgroundColor;
  660. }
  661. // Validation starts here
  662. var valid = true;
  663. /* Filename length is constrained to 255 at database level */
  664. if (value.length > 255) {
  665. alert(alert_arr.LBL_FILENAME_LENGTH_EXCEED_ERR);
  666. valid = false;
  667. }
  668. if (!valid) {
  669. form_ele.style.backgroundColor = err_bg_color;
  670. return false;
  671. }
  672. form_ele.style.backgroundColor = form_ele.bgcolor;
  673. form_ele.form[form_ele.name + '_hidden'].value = value;
  674. return true;
  675. }
  676. function formValidate(){
  677. return doformValidation('');
  678. }
  679. function massEditFormValidate(){
  680. return doformValidation('mass_edit');
  681. }
  682. function doformValidation(edit_type) {
  683. //Validation for Portal User
  684. if(gVTModule == 'Contacts' && gValidationCall != 'tabchange')
  685. {
  686. //if existing portal value = 0, portal checkbox = checked, ( email field is not available OR email is empty ) then we should not allow -- OR --
  687. //if existing portal value = 1, portal checkbox = checked, ( email field is available AND email is empty ) then we should not allow
  688. if(edit_type=='')
  689. {
  690. if((getObj('existing_portal').value == 0 && getObj('portal').checked && (getObj('email') == null || trim(getObj('email').value) == '')) ||
  691. getObj('existing_portal').value == 1 && getObj('portal').checked && getObj('email') != null && trim(getObj('email').value) == '')
  692. {
  693. alert(alert_arr.PORTAL_PROVIDE_EMAILID);
  694. return false;
  695. }
  696. }
  697. else
  698. {
  699. if(getObj('portal') != null && getObj('portal').checked && getObj('portal_mass_edit_check').checked && (getObj('email') == null || trim(getObj('email').value) == '' || getObj('email_mass_edit_check').checked==false))
  700. {
  701. alert(alert_arr.PORTAL_PROVIDE_EMAILID);
  702. return false;
  703. }
  704. if((getObj('email') != null && trim(getObj('email').value) == '' && getObj('email_mass_edit_check').checked) && !(getObj('portal').checked==false && getObj('portal_mass_edit_check').checked))
  705. {
  706. alert(alert_arr.EMAIL_CHECK_MSG);
  707. return false;
  708. }
  709. }
  710. }
  711. if(gVTModule == 'SalesOrder') {
  712. if(edit_type == 'mass_edit') {
  713. if (getObj('enable_recurring_mass_edit_check') != null
  714. && getObj('enable_recurring_mass_edit_check').checked
  715. && getObj('enable_recurring') != null) {
  716. if(getObj('enable_recurring').checked && (getObj('recurring_frequency') == null
  717. || trim(getObj('recurring_frequency').value) == '--None--' || getObj('recurring_frequency_mass_edit_check').checked==false)) {
  718. alert(alert_arr.RECURRING_FREQUENCY_NOT_PROVIDED);
  719. return false;
  720. }
  721. if(getObj('enable_recurring').checked == false && getObj('recurring_frequency_mass_edit_check').checked
  722. && getObj('recurring_frequency') != null && trim(getObj('recurring_frequency').value) != '--None--') {
  723. alert(alert_arr.RECURRING_FREQNECY_NOT_ENABLED);
  724. return false;
  725. }
  726. }
  727. } else if(getObj('enable_recurring') != null && getObj('enable_recurring').checked) {
  728. if(getObj('recurring_frequency') == null || getObj('recurring_frequency').value == '--None--') {
  729. alert(alert_arr.RECURRING_FREQUENCY_NOT_PROVIDED);
  730. return false;
  731. }
  732. var start_period = getObj('start_period');
  733. var end_period = getObj('end_period');
  734. if (trim(start_period.value) == '' || trim(end_period.value) == '') {
  735. alert(alert_arr.START_PERIOD_END_PERIOD_CANNOT_BE_EMPTY);
  736. return false;
  737. }
  738. }
  739. }
  740. for (var i=0; i<fieldname.length; i++) {
  741. if(edit_type == 'mass_edit') {
  742. if(fieldname[i]!='salutationtype')
  743. var obj = getObj(fieldname[i]+"_mass_edit_check");
  744. if(obj == null || obj.checked == false) continue;
  745. }
  746. if(getObj(fieldname[i]) != null)
  747. {
  748. var type=fielddatatype[i].split("~")
  749. if (type[1]=="M") {
  750. if (!emptyCheck(fieldname[i],fieldlabel[i],getObj(fieldname[i]).type))
  751. return false;
  752. }
  753. switch (type[0]) {
  754. case "O" : break;
  755. case "V" : break;
  756. case "C" : break;
  757. case "DT" :
  758. if (getObj(fieldname[i]) != null && getObj(fieldname[i]).value.replace(/^\s+/g, '').replace(/\s+$/g, '').length!=0)
  759. {
  760. if (type[1]=="M")
  761. if (!emptyCheck(fieldname[2],fieldlabel[i],getObj(type[2]).type))
  762. return false
  763. if(typeof(type[3])=="undefined") var currdatechk="OTH"
  764. else var currdatechk=type[3]
  765. if (!dateTimeValidate(fieldname[i],type[2],fieldlabel[i],currdatechk))
  766. return false
  767. if (type[4]) {
  768. if (!dateTimeComparison(fieldname[i],type[2],fieldlabel[i],type[5],type[6],type[4]))
  769. return false
  770. }
  771. }
  772. break;
  773. case "D" :
  774. if (getObj(fieldname[i]) != null && getObj(fieldname[i]).value.replace(/^\s+/g, '').replace(/\s+$/g, '').length!=0)
  775. {
  776. if(typeof(type[2])=="undefined") var currdatechk="OTH"
  777. else var currdatechk=type[2]
  778. if (!dateValidate(fieldname[i],fieldlabel[i],currdatechk))
  779. return false
  780. if (type[3]) {
  781. if(gVTModule == 'SalesOrder' && fieldname[i] == 'end_period'
  782. && (getObj('enable_recurring') == null || getObj('enable_recurring').checked == false)) {
  783. continue;
  784. }
  785. if (!dateComparison(fieldname[i],fieldlabel[i],type[4],type[5],type[3]))
  786. return false
  787. }
  788. }
  789. break;
  790. case "T" :
  791. if (getObj(fieldname[i]) != null && getObj(fieldname[i]).value.replace(/^\s+/g, '').replace(/\s+$/g, '').length!=0)
  792. {
  793. if(typeof(type[2])=="undefined") var currtimechk="OTH"
  794. else var currtimechk=type[2]
  795. if (!timeValidate(fieldname[i],fieldlabel[i],currtimechk))
  796. return false
  797. if (type[3]) {
  798. if (!timeComparison(fieldname[i],fieldlabel[i],type[4],type[5],type[3]))
  799. return false
  800. }
  801. }
  802. break;
  803. case "I" :
  804. if (getObj(fieldname[i]) != null && getObj(fieldname[i]).value.replace(/^\s+/g, '').replace(/\s+$/g, '').length!=0)
  805. {
  806. if (getObj(fieldname[i]).value.length!=0)
  807. {
  808. if (!intValidate(fieldname[i],fieldlabel[i]))
  809. return false
  810. if (type[2]) {
  811. if (!numConstComp(fieldname[i],fieldlabel[i],type[2],type[3]))
  812. return false
  813. }
  814. }
  815. }
  816. break;
  817. case "N" :
  818. case "NN" :
  819. if (getObj(fieldname[i]) != null && getObj(fieldname[i]).value.replace(/^\s+/g, '').replace(/\s+$/g, '').length!=0)
  820. {
  821. if (getObj(fieldname[i]).value.length!=0)
  822. {
  823. if (typeof(type[2])=="undefined") var numformat="any"
  824. else var numformat=type[2]
  825. if(type[0]=="NN")
  826. {
  827. if (!numValidate(fieldname[i],fieldlabel[i],numformat,true))
  828. return false
  829. }
  830. else if (!numValidate(fieldname[i],fieldlabel[i],numformat))
  831. return false
  832. if (type[3]) {
  833. if (!numConstComp(fieldname[i],fieldlabel[i],type[3],type[4]))
  834. return false
  835. }
  836. }
  837. }
  838. break;
  839. case "E" :
  840. if (getObj(fieldname[i]) != null && getObj(fieldname[i]).value.replace(/^\s+/g, '').replace(/\s+$/g, '').length!=0)
  841. {
  842. if (getObj(fieldname[i]).value.length!=0)
  843. {
  844. var etype = "EMAIL"
  845. if(fieldname[i] == "yahooid" || fieldname[i] == "yahoo_id")
  846. {
  847. etype = "YAHOO";
  848. }
  849. if (!patternValidate(fieldname[i],fieldlabel[i],etype))
  850. return false;
  851. }
  852. }
  853. break;
  854. }
  855. //start Birth day date validation
  856. if(fieldname[i] == "birthday" && getObj(fieldname[i]).value.replace(/^\s+/g, '').replace(/\s+$/g, '').length!=0 )
  857. {
  858. var now =new Date()
  859. var currtimechk="OTH"
  860. var datelabel = fieldlabel[i]
  861. var datefield = fieldname[i]
  862. var datevalue =getObj(datefield).value.replace(/^\s+/g, '').replace(/\s+$/g, '')
  863. if (!dateValidate(fieldname[i],fieldlabel[i],currdatechk))
  864. {
  865. try { getObj(datefield).focus() } catch(error) { }
  866. return false
  867. }
  868. else
  869. {
  870. datearr=splitDateVal(datevalue);
  871. dd=datearr[0]
  872. mm=datearr[1]
  873. yyyy=datearr[2]
  874. var datecheck = new Date()
  875. datecheck.setYear(yyyy)
  876. datecheck.setMonth(mm-1)
  877. datecheck.setDate(dd)
  878. if (!compareDates(datecheck,datelabel,now,"Current Date","L"))
  879. {
  880. try { getObj(datefield).focus() } catch(error) { }
  881. return false
  882. }
  883. }
  884. }
  885. //End Birth day
  886. }
  887. }
  888. if(gVTModule == 'Contacts')
  889. {
  890. if(getObj('imagename'))
  891. {
  892. if(getObj('imagename').value != '')
  893. {
  894. var image_arr = new Array();
  895. image_arr = (getObj('imagename').value).split(".");
  896. var image_arr_last_index = image_arr.length - 1;
  897. if(image_arr_last_index < 0) {
  898. alert(alert_arr.LBL_WRONG_IMAGE_TYPE);
  899. return false;
  900. }
  901. var image_ext = image_arr[image_arr_last_index].toLowerCase();
  902. if(image_ext == "jpeg" || image_ext == "png" || image_ext == "jpg" || image_ext == "pjpeg" || image_ext == "x-png" || image_ext == "gif")
  903. {
  904. return true;
  905. }
  906. else
  907. {
  908. alert(alert_arr.LBL_WRONG_IMAGE_TYPE);
  909. return false;
  910. }
  911. }
  912. }
  913. }
  914. //added to check Start Date & Time,if Activity Status is Planned.//start
  915. for (var j=0; j<fieldname.length; j++)
  916. {
  917. if(getObj(fieldname[j]) != null)
  918. {
  919. if(fieldname[j] == "date_start" || fieldname[j] == "task_date_start" )
  920. {
  921. var datelabel = fieldlabel[j]
  922. var datefield = fieldname[j]
  923. var startdatevalue = getObj(datefield).value.replace(/^\s+/g, '').replace(/\s+$/g, '')
  924. }
  925. if(fieldname[j] == "time_start" || fieldname[j] == "task_time_start")
  926. {
  927. var timelabel = fieldlabel[j]
  928. var timefield = fieldname[j]
  929. var timeval=getObj(timefield).value.replace(/^\s+/g, '').replace(/\s+$/g, '')
  930. }
  931. if(fieldname[j] == "eventstatus" || fieldname[j] == "taskstatus")
  932. {
  933. var statusvalue = getObj(fieldname[j]).value.replace(/^\s+/g, '').replace(/\s+$/g, '')
  934. var statuslabel = fieldlabel[j++]
  935. }
  936. }
  937. }
  938. if(statusvalue == "Planned")
  939. {
  940. var dateelements=splitDateVal(startdatevalue)
  941. var hourval=parseInt(timeval.substring(0,timeval.indexOf(":")))
  942. var minval=parseInt(timeval.substring(timeval.indexOf(":")+1,timeval.length))
  943. dd=dateelements[0]
  944. mm=dateelements[1]
  945. yyyy=dateelements[2]
  946. var chkdate=new Date()
  947. chkdate.setYear(yyyy)
  948. chkdate.setMonth(mm-1)
  949. chkdate.setDate(dd)
  950. chkdate.setMinutes(minval)
  951. chkdate.setHours(hourval)
  952. if(!comparestartdate(chkdate)) return false;
  953. }//end
  954. // We need to enforce fileupload for internal type
  955. if(gVTModule == 'Documents') {
  956. if(getObj('filelocationtype').value == 'I') {
  957. if(getObj('filename_hidden').value == '') {
  958. alert(alert_arr.LBL_PLEASE_SELECT_FILE_TO_UPLOAD);
  959. return false;
  960. }
  961. }
  962. }
  963. return true
  964. }
  965. function clearId(fldName) {
  966. var currObj=getObj(fldName)
  967. currObj.value=""
  968. }
  969. function comparestartdate(chkdate)
  970. {
  971. var datObj = [];
  972. var ajxdate = "test";
  973. var url = "module=Calendar&action=CalendarAjax&file=CalendarCommon&fieldval="+ajxdate
  974. var currdate = new Date();
  975. new Ajax.Request(
  976. 'index.php',
  977. {
  978. queue: {position: 'end', scope: 'command'},
  979. method: 'post',
  980. postBody:url,
  981. onComplete: function(response)
  982. {
  983. datObj = eval(response.responseText);
  984. currdate.setFullYear(datObj[0].YEAR)
  985. currdate.setMonth(datObj[0].MONTH-1)
  986. currdate.setDate(datObj[0].DAY)
  987. currdate.setHours(datObj[0].HOUR)
  988. currdate.setMinutes(datObj[0].MINUTE)
  989. }
  990. }
  991. );
  992. return compareDates(chkdate,alert_arr.START_DATE_TIME,currdate,alert_arr.DATE_SHOULDNOT_PAST,"GE");
  993. }
  994. function showCalc(fldName) {
  995. var currObj=getObj(fldName)
  996. openPopUp("calcWin",currObj,"/crm/Calc.do?currFld="+fldName,"Calc",170,220,"menubar=no,toolbar=no,location=no,status=no,scrollbars=no,resizable=yes")
  997. }
  998. function showLookUp(fldName,fldId,fldLabel,searchmodule,hostName,serverPort,username) {
  999. var currObj=getObj(fldName)
  1000. //var fldValue=currObj.value.replace(/^\s+/g, '').replace(/\s+$/g, '')
  1001. //need to pass the name of the system in which the server is running so that even when the search is invoked from another system, the url will remain the same
  1002. openPopUp("lookUpWin",currObj,"/crm/Search.do?searchmodule="+searchmodule+"&fldName="+fldName+"&fldId="+fldId+"&fldLabel="+fldLabel+"&fldValue=&user="+username,"LookUp",500,400,"menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=yes")
  1003. }
  1004. function openPopUp(winInst,currObj,baseURL,winName,width,height,features) {
  1005. var left=parseInt(findPosX(currObj))
  1006. var top=parseInt(findPosY(currObj))
  1007. if (window.navigator.appName!="Opera") top+=parseInt(currObj.offsetHeight)
  1008. else top+=(parseInt(currObj.offsetHeight)*2)+10
  1009. if (browser_ie) {
  1010. top+=window.screenTop-document.body.scrollTop
  1011. left-=document.body.scrollLeft
  1012. if (top+height+30>window.screen.height)
  1013. top=findPosY(currObj)+window.screenTop-height-30 //30 is a constant to avoid positioning issue
  1014. if (left+width>window.screen.width)
  1015. left=findPosX(currObj)+window.screenLeft-width
  1016. } else if (browser_nn4 || browser_nn6) {
  1017. top+=(scrY-pgeY)
  1018. left+=(scrX-pgeX)
  1019. if (top+height+30>window.screen.height)
  1020. top=findPosY(currObj)+(scrY-pgeY)-height-30
  1021. if (left+width>window.screen.width)
  1022. left=findPosX(currObj)+(scrX-pgeX)-width
  1023. }
  1024. features="width="+width+",height="+height+",top="+top+",left="+left+";"+features
  1025. eval(winInst+'=window.open("'+baseURL+'","'+winName+'","'+features+'")')
  1026. }
  1027. var scrX=0,scrY=0,pgeX=0,pgeY=0;
  1028. if (browser_nn4 || browser_nn6) {
  1029. document.addEventListener("click",popUpListener,true)
  1030. }
  1031. function popUpListener(ev) {
  1032. if (browser_nn4 || browser_nn6) {
  1033. scrX=ev.screenX
  1034. scrY=ev.screenY
  1035. pgeX=ev.pageX
  1036. pgeY=ev.pageY
  1037. }
  1038. }
  1039. function toggleSelect(state,relCheckName) {
  1040. if (getObj(relCheckName)) {
  1041. if (typeof(getObj(relCheckName).length)=="undefined") {
  1042. getObj(relCheckName).checked=state
  1043. } else {
  1044. for (var i=0;i<getObj(relCheckName).length;i++)
  1045. getObj(relCheckName)[i].checked=state
  1046. }
  1047. }
  1048. }
  1049. function toggleSelectAll(relCheckName,selectAllName) {
  1050. if (typeof(getObj(relCheckName).length)=="undefined") {
  1051. getObj(selectAllName).checked=getObj(relCheckName).checked
  1052. } else {
  1053. var atleastOneFalse=false;
  1054. for (var i=0;i<getObj(relCheckName).length;i++) {
  1055. if (getObj(relCheckName)[i].checked==false) {
  1056. atleastOneFalse=true
  1057. break;
  1058. }
  1059. }
  1060. getObj(selectAllName).checked=!atleastOneFalse
  1061. }
  1062. }
  1063. //added for show/hide 10July
  1064. function expandCont(bn)
  1065. {
  1066. var leftTab = document.getElementById(bn);
  1067. leftTab.style.display = (leftTab.style.display == "block")?"none":"block";
  1068. img = document.getElementById("img_"+bn);
  1069. img.src=(img.src.indexOf("images/toggle1.gif")!=-1)?"themes/images/toggle2.gif":"themes/images/toggle1.gif";
  1070. set_cookie_gen(bn,leftTab.style.display)
  1071. }
  1072. function setExpandCollapse_gen()
  1073. {
  1074. var x = leftpanelistarray.length;
  1075. for (i = 0 ; i < x ; i++)
  1076. {
  1077. var listObj=getObj(leftpanelistarray[i])
  1078. var tgImageObj=getObj("img_"+leftpanelistarray[i])
  1079. var status = get_cookie_gen(leftpanelistarray[i])
  1080. if (status == "block") {
  1081. listObj.style.display="block";
  1082. tgImageObj.src="themes/images/toggle2.gif";
  1083. } else if(status == "none") {
  1084. listObj.style.display="none";
  1085. tgImageObj.src="themes/images/toggle1.gif";
  1086. }
  1087. }
  1088. }
  1089. function toggleDiv(id) {
  1090. var listTableObj=getObj(id)
  1091. if (listTableObj.style.display=="block")
  1092. {
  1093. listTableObj.style.display="none"
  1094. }else{
  1095. listTableObj.style.display="block"
  1096. }
  1097. //set_cookie(id,listTableObj.style.display)
  1098. }
  1099. //Setting cookies
  1100. function set_cookie_gen ( name, value, exp_y, exp_m, exp_d, path, domain, secure )
  1101. {
  1102. var cookie_string = name + "=" + escape ( value );
  1103. if ( exp_y )
  1104. {
  1105. var expires = new Date ( exp_y, exp_m, exp_d );
  1106. cookie_string += "; expires=" + expires.toGMTString();
  1107. }
  1108. if ( path )
  1109. cookie_string += "; path=" + escape ( path );
  1110. if ( domain )
  1111. cookie_string += "; domain=" + escape ( domain );
  1112. if ( secure )
  1113. cookie_string += "; secure";
  1114. document.cookie = cookie_string;
  1115. }
  1116. // Retrieving cookies
  1117. function get_cookie_gen ( cookie_name )
  1118. {
  1119. var results = document.cookie.match ( cookie_name + '=(.*?)(;|$)' );
  1120. if ( results )
  1121. return ( unescape ( results[1] ) );
  1122. else
  1123. return null;
  1124. }
  1125. // Delete cookies
  1126. function delete_cookie_gen ( cookie_name )
  1127. {
  1128. var cookie_date = new Date ( ); // current date & time
  1129. cookie_date.setTime ( cookie_date.getTime() - 1 );
  1130. document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
  1131. }
  1132. //end added for show/hide 10July
  1133. /** This is Javascript Function which is used to toogle between
  1134. * assigntype user and group/team select options while assigning owner to entity.
  1135. */
  1136. function toggleAssignType(currType)
  1137. {
  1138. if (currType=="U")
  1139. {
  1140. getObj("assign_user").style.display="block"
  1141. getObj("assign_team").style.display="none"
  1142. }
  1143. else
  1144. {
  1145. getObj("assign_user").style.display="none"
  1146. getObj("assign_team").style.display="block"
  1147. }
  1148. }
  1149. //to display type of address for google map
  1150. function showLocateMapMenu()
  1151. {
  1152. getObj("dropDownMenu").style.display="block"
  1153. getObj("dropDownMenu").style.left=findPosX(getObj("locateMap"))
  1154. getObj("dropDownMenu").style.top=findPosY(getObj("locateMap"))+getObj("locateMap").offsetHeight
  1155. }
  1156. function hideLocateMapMenu(ev)
  1157. {
  1158. if (browser_ie)
  1159. currElement=window.event.srcElement
  1160. else if (browser_nn4 || browser_nn6)
  1161. currElement=ev.target
  1162. if (currElement.id!="locateMap")
  1163. if (getObj("dropDownMenu").style.display=="block")
  1164. getObj("dropDownMenu").style.display="none"
  1165. }
  1166. /*
  1167. * javascript function to display the div tag
  1168. * @param divId :: div tag ID
  1169. */
  1170. function show(divId)
  1171. {
  1172. if(getObj(divId))
  1173. {
  1174. var id = document.getElementById(divId);
  1175. id.style.display = 'inline';
  1176. }
  1177. }
  1178. /*
  1179. * javascript function to display the div tag
  1180. * @param divId :: div tag ID
  1181. */
  1182. function showBlock(divId)
  1183. {
  1184. var id = document.getElementById(divId);
  1185. id.style.display = 'block';
  1186. }
  1187. /*
  1188. * javascript function to hide the div tag
  1189. * @param divId :: div tag ID
  1190. */
  1191. function hide(divId)
  1192. {
  1193. var id = document.getElementById(divId);
  1194. id.style.display = 'none';
  1195. }
  1196. function fnhide(divId)
  1197. {
  1198. var id = document.getElementById(divId);
  1199. id.style.display = 'none';
  1200. }
  1201. function fnLoadValues(obj1,obj2,SelTab,unSelTab,moduletype,module){
  1202. var oform = document.forms['EditView'];
  1203. oform.action.value='Save';
  1204. //global variable to check the validation calling function to avoid validating when tab change
  1205. gValidationCall = 'tabchange';
  1206. /*var tabName1 = document.getElementById(obj1);
  1207. var tabName2 = document.getElementById(obj2);
  1208. var tagName1 = document.getElementById(SelTab);
  1209. var tagName2 = document.getElementById(unSelTab);
  1210. if(tabName1.className == "dvtUnSelectedCell")
  1211. tabName1.className = "dvtSelectedCell";
  1212. if(tabName2.className == "dvtSelectedCell")
  1213. tabName2.className = "dvtUnSelectedCell";
  1214. tagName1.style.display='block';
  1215. tagName2.style.display='none';*/
  1216. gValidationCall = 'tabchange';
  1217. // if((moduletype == 'inventory' && validateInventory(module)) ||(moduletype == 'normal') && formValidate())
  1218. // if(formValidate())
  1219. // {
  1220. var tabName1 = document.getElementById(obj1);
  1221. var tabName2 = document.getElementById(obj2);
  1222. var tagName1 = document.getElementById(SelTab);
  1223. var tagName2 = document.getElementById(unSelTab);
  1224. if(tabName1.className == "dvtUnSelectedCell")
  1225. tabName1.className = "dvtSelectedCell";
  1226. if(tabName2.className == "dvtSelectedCell")
  1227. tabName2.className = "dvtUnSelectedCell";
  1228. tagName1.style.display='block';
  1229. tagName2.style.display='none';
  1230. // }
  1231. gValidationCall = '';
  1232. }
  1233. function fnCopy(source,design){
  1234. document.getElementById(source).value=document.getElementById(design).value;
  1235. document.getElementById(source).disabled=true;
  1236. }
  1237. function fnClear(source){
  1238. document.getElementById(source).value=" ";
  1239. document.getElementById(source).disabled=false;
  1240. }
  1241. function fnCpy(){
  1242. var tagName=document.getElementById("cpy");
  1243. if(tagName.checked==true){
  1244. fnCopy("shipaddress","address");
  1245. fnCopy("shippobox","pobox");
  1246. fnCopy("shipcity","city");
  1247. fnCopy("shipcode","code");
  1248. fnCopy("shipstate","state");
  1249. fnCopy("shipcountry","country");
  1250. }
  1251. else{
  1252. fnClear("shipaddress");
  1253. fnClear("shippobox");
  1254. fnClear("shipcity");
  1255. fnClear("shipcode");
  1256. fnClear("shipstate");
  1257. fnClear("shipcountry");
  1258. }
  1259. }
  1260. function fnDown(obj){
  1261. var tagName = document.getElementById(obj);
  1262. var tabName = document.getElementById("one");
  1263. if(tagName.style.display == 'none'){
  1264. tagName.style.display = 'block';
  1265. tabName.style.display = 'block';
  1266. }
  1267. else{
  1268. tabName.style.display = 'none';
  1269. tagName.style.display = 'none';
  1270. }
  1271. }
  1272. /*
  1273. * javascript function to add field rows
  1274. * @param option_values :: List of Field names
  1275. */
  1276. var count = 0;
  1277. var rowCnt = 1;
  1278. function fnAddSrch(option_values,criteria_values){
  1279. var tableName = document.getElementById('adSrc');
  1280. var prev = tableName.rows.length;
  1281. var count = prev;
  1282. var row = tableName.insertRow(prev);
  1283. if(count%2)
  1284. row.className = "dvtCellLabel";
  1285. else
  1286. row.className = "dvtCellInfo";
  1287. var colone = row.insertCell(0);
  1288. var coltwo = row.insertCell(1);
  1289. var colthree = row.insertCell(2);
  1290. colone.innerHTML="<select id='Fields"+count+"' name='Fields"+count+"' onchange=\"updatefOptions(this, 'Condition"+count+"')\" class='detailedViewTextBox'>"+option_values+"</select>";
  1291. coltwo.innerHTML="<select id='Condition"+count+"' name='Condition"+count+"' class='detailedViewTextBox'>"+criteria_values+"</select> ";
  1292. colthree.innerHTML="<input type='text' id='Srch_value"+count+"' name='Srch_value"+count+"' class='detailedViewTextBox'>";
  1293. }
  1294. function totalnoofrows()
  1295. {
  1296. var tableName = document.getElementById('adSrc');
  1297. document.basicSearch.search_cnt.value = tableName.rows.length;
  1298. }
  1299. /*
  1300. * javascript function to delete field rows in advance search
  1301. * @param void :: void
  1302. */
  1303. function delRow()
  1304. {
  1305. var tableName = document.getElementById('adSrc');
  1306. var prev = tableName.rows.length;
  1307. if(prev > 1)
  1308. document.getElementById('adSrc').deleteRow(prev-1);
  1309. }
  1310. function fnVis(obj){
  1311. var profTag = document.getElementById("prof");
  1312. var moreTag = document.getElementById("more");
  1313. var addrTag = document.getElementById("addr");
  1314. if(obj == 'prof'){
  1315. document.getElementById('mnuTab').style.display = 'block';
  1316. document.getElementById('mnuTab1').style.display = 'none';
  1317. document.getElementById('mnuTab2').style.display = 'none';
  1318. profTag.className = 'dvtSelectedCell';
  1319. moreTag.className = 'dvtUnSelectedCell';
  1320. addrTag.className = 'dvtUnSelectedCell';
  1321. }
  1322. else if(obj == 'more'){
  1323. document.getElementById('mnuTab1').style.display = 'block';
  1324. document.getElementById('mnuTab').style.display = 'none';
  1325. document.getElementById('mnuTab2').style.display = 'none';
  1326. moreTag.className = 'dvtSelectedCell';
  1327. profTag.className = 'dvtUnSelectedCell';
  1328. addrTag.className = 'dvtUnSelectedCell';
  1329. }
  1330. else if(obj == 'addr'){
  1331. document.getElementById('mnuTab2').style.display = 'block';
  1332. document.getElementById('mnuTab').style.display = 'none';
  1333. document.getElementById('mnuTab1').style.display = 'none';
  1334. addrTag.className = 'dvtSelectedCell';
  1335. profTag.className = 'dvtUnSelectedCell';
  1336. moreTag.className = 'dvtUnSelectedCell';
  1337. }
  1338. }
  1339. function fnvsh(obj,Lay){
  1340. var tagName = document.getElementById(Lay);
  1341. var leftSide = findPosX(obj);
  1342. var topSide = findPosY(obj);
  1343. tagName.style.left= leftSide + 175 + 'px';
  1344. tagName.style.top= topSide + 'px';
  1345. tagName.style.visibility = 'visible';
  1346. }
  1347. function fnvshobj(obj,Lay){
  1348. var tagName = document.getElementById(Lay);
  1349. var leftSide = findPosX(obj);
  1350. var topSide = findPosY(obj);
  1351. var maxW = tagName.style.width;
  1352. var widthM = maxW.substring(0,maxW.length-2);
  1353. if(Lay == 'editdiv')
  1354. {
  1355. leftSide = leftSide - 225;
  1356. topSide = topSide - 125;
  1357. }else if(Lay == 'transferdiv')
  1358. {
  1359. leftSide = leftSide - 10;
  1360. topSide = topSide;
  1361. }
  1362. var IE = document.all?true:false;
  1363. if(IE)
  1364. {
  1365. if($("repposition1"))
  1366. {
  1367. if(topSide > 1200)
  1368. {
  1369. topSide = topSide-250;
  1370. }
  1371. }
  1372. }
  1373. var getVal = eval(leftSide) + eval(widthM);
  1374. if(getVal > document.body.clientWidth ){
  1375. leftSide = eval(leftSide) - eval(widthM);
  1376. tagName.style.left = leftSide + 34 + 'px';
  1377. }
  1378. else
  1379. tagName.style.left= leftSide + 'px';
  1380. tagName.style.top= topSide + 'px';
  1381. tagName.style.display = 'block';
  1382. tagName.style.visibility = "visible";
  1383. }
  1384. function posLay(obj,Lay){
  1385. var tagName = document.getElementById(Lay);
  1386. var leftSide = findPosX(obj);
  1387. var topSide = findPosY(obj);
  1388. var maxW = tagName.style.width;
  1389. var widthM = maxW.substring(0,maxW.length-2);
  1390. var getVal = eval(leftSide) + eval(widthM);
  1391. if(getVal > document.body.clientWidth ){
  1392. leftSide = eval(leftSide) - eval(widthM);
  1393. tagName.style.left = leftSide + 'px';
  1394. }
  1395. else
  1396. tagName.style.left= leftSide + 'px';
  1397. tagName.style.top= topSide + 'px';
  1398. }
  1399. function fninvsh(Lay){
  1400. var tagName = document.getElementById(Lay);
  1401. tagName.style.visibility = 'hidden';
  1402. tagName.style.display = 'none';
  1403. }
  1404. function fnvshNrm(Lay){
  1405. var tagName = document.getElementById(Lay);
  1406. tagName.style.visibility = 'visible';
  1407. tagName.style.display = 'block';
  1408. }
  1409. function cancelForm(frm)
  1410. {
  1411. window.history.back();
  1412. }
  1413. function trim(str)
  1414. {
  1415. var s = str.replace(/\s+$/,'');
  1416. s = s.replace(/^\s+/,'');
  1417. return s;
  1418. }
  1419. function clear_form(form)
  1420. {
  1421. for (j = 0; j < form.elements.length; j++)
  1422. {
  1423. if (form.elements[j].type == 'text' || form.elements[j].type == 'select-one')
  1424. {
  1425. form.elements[j].value = '';
  1426. }
  1427. }
  1428. }
  1429. function ActivateCheckBox()
  1430. {
  1431. var map = document.getElementById("saved_map_checkbox");
  1432. var source = document.getElementById("saved_source");
  1433. if(map.checked == true)
  1434. {
  1435. source.disabled = false;
  1436. }
  1437. else
  1438. {
  1439. source.disabled = true;
  1440. }
  1441. }
  1442. //wipe for Convert Lead
  1443. function fnSlide2(obj,inner)
  1444. {
  1445. var buff = document.getElementById(obj).height;
  1446. closeLimit = buff.substring(0,buff.length);
  1447. menu_max = eval(closeLimit);
  1448. va

Large files files are truncated, but you can click here to view the full file