PageSourceSearch

https://secure.myimpactnetwork.com/staticContent/Scripts/siteFunctions.js

js myimpactnetwork.com collected 2026-10-04 13:33:39 UTC 123,528 bytes, 3,424 lines download raw bytes

1/////////////////////////////////////////////////////
2// siteFunctions.js
3/////////////////////////////////////////////////////
4console.log("siteFunctions.js");
5var testMode = false;
6
7function displayError(controlName, vmsg) {
8	$(controlName + "-errorholder").html(vmsg).addClass("required-msg");
9	$(controlName).addClass("required");		
10}
11
12
13// Only number allowed
14function isNumberOnly($number) {
15    var filter = /^[0-9]+$/;
16    if (filter.test($number)) {
17        return true;
18    } else {
19        return false;
20    }
21
22}
23
24//Number Range, like 1 - 999.
25function isNumberRange($number, $controlName) {	
26	if (isNumberOnly($number)) {
27		var range = $($controlName + "-container_control").attr("numberrange");
28		if (range != null) {
29			var array = range.split("-");
30			var min = parseInt(array[0].trim());
31			var max = parseInt(array[1].trim());
32			
33			if ($number < min || $number > max) {
34				return false;
35			}
36		}
37		return true;
38	} else {
39		return false;
40	}
41
42}
43
44// only alphanumeric only
45function isStringOnly($temp) {
46    var filter = /^[a-zA-Z() ]+$/;
47    if (filter.test($temp)) {
48        return true;
49    } else {
50        return false;
51    }
52
53}
54
55function changeLabelPos(ielement) {
56	if (ielement.attr("data-position")=="")
57		return;
58
59	var containerId = ielement.attr("id");
60	var containerIdArray = containerId.split("-");
61	var baseId = containerIdArray[0];
62	var containerLabelId = baseId + "-LabelId";
63	var containerInputId = baseId;
64	var containerExtraInfoLabelId = baseId + "-extraInfoLabel" ;
65
66
67	var objlabel = $("#" +containerLabelId).html();
68	var objInput = $("#" +containerInputId);
69	var objExtraInfo= $("#" +containerExtraInfoLabelId).html();
70	var containerObject = $("#" +containerInputId + "-container_control");
71
72	var isotherfield=ielement.attr("isotherfield");
73
74	ielement.html('');
75	if (ielement.attr("data-position")=="down"){	    
76	 	ielement.append(objInput);
77		ielement.html($(containerObject).html() + "<br/>");
78		ielement.append(objlabel);   
79   	} else if (ielement.attr("data-position")=="left"){	    
80		ielement.append(objlabel);
81		ielement.html(ielement.html() + "&nbsp;&nbsp;");
82		ielement.append(objInput);
83	} else if (ielement.attr("data-position")=="right"){   
84		ielement.append(objInput);
85		ielement.html(ielement.html() + "&nbsp;&nbsp;");
86		ielement.append(objlabel);
87	} else {
88		ielement.append(objlabel);
89		ielement.html(ielement.html() + "<br/>");
90		ielement.append(objInput);
91		if(ielement.attr("extraInfoLabelPosition")=="right"){
92			ielement.append("&nbsp;&nbsp;"+objExtraInfo);
93		}
94	}
95
96	if (ielement.attr("extraInfoLabelPosition")=="down"){
97		ielement.append("<br/>&nbsp;&nbsp;"+objExtraInfo+"<br/><br/>");
98	}
99
100	ielement.attr("data-position","");
101
102	if (isotherfield=="true"){
103		//var otherFieldId=baseId+"-otherfield";
104		var otherFieldId=baseId+"_OTH";
105		var otherFieldDivId=baseId+"-otherfield_div";
106		var objInputOtherField = $("#" +otherFieldDivId);
107		ielement.append(objInputOtherField);
108
109		//attached onChange event to inputItem
110		$("#" + baseId).blur(function(){					 
111			 if($("#"+baseId).val() != '' && $("#"+baseId).val() != null){
112				    var itemValue = parseInt($("#"+baseId).val());						    
113				 	$('#'+otherFieldDivId).css('display', (itemValue>0) ? 'block' : 'none');
114				 	if(!(itemValue>0)){
115				 		$('#'+baseId+"-errorholder_otherfield").html("");
116				 		$('#'+otherFieldId).attr('value',"");
117				 	}				 						 
118			 }else{
119				 $('#'+baseId+"-errorholder_otherfield").html("");
120				 $('#'+otherFieldDivId).css('display','none');
121				 $('#'+otherFieldId).attr('value',"");
122			 }
123	     });
124	}
125
126}
127
128
129function validateElement(controlName, validation, vmsg) {
130	console.log("validateElement: "+controlName);
131	invalidPageElements = new Array();
132	if ($(controlName).is(':visible')==false) return true;
133    var temp = $(controlName).val().trim();
134
135    if (validation == "email") {
136        if (!isValidEmail(temp) && temp != "") {
137            displayError(controlName, vmsg);
138			invalidPageElements.push(controlName);
139        } else {
140            $(controlName + "-errorholder").html("");			
141			checkDuplicateEmail(trxUserBean, controlName.substr(1));
142        }
143    } else if (validation == "confirmEmail") {
144        if ((temp!="") && ($("#EMAIL_ADDRESS").val().toUpperCase() != temp.toUpperCase())) {
145            displayError(controlName, vmsg);
146			invalidPageElements.push(controlName);
147        } else {
148            $(controlName + "-errorholder").html("");
149        }
150    } else if (validation == "numberRange" && temp != "") {
151        if (!isNumberRange(temp, controlName)) {
152            displayError(controlName, vmsg);
153			invalidPageElements.push(controlName);
154        } else {
155            $(controlName + "-errorholder").html("");
156        }
157     } else if (validation == "password") {
158        if (!isPassword(temp)) {
159			vmsg = passwordMsg; //override default error string
160            displayError(controlName, vmsg);
161			invalidPageElements.push(controlName);			
162        } else {
163            $(controlName + "-errorholder").html("");
164        }
165    } else if (validation == "confirmPassword") {
166        if ($("#PASSWORD").val() != temp) {
167            displayError(controlName, vmsg);
168			invalidPageElements.push(controlName);
169        } else {
170            $(controlName + "-errorholder").html("");
171        }
172    } else if (validation == "stringonly") {
173        if (!isStringOnly(temp) && temp != "") {
174            displayError(controlName, vmsg);
175			invalidPageElements.push(controlName);
176        } else {
177            $(controlName + "-errorholder").html("");
178        }
179    } else if (validation == "uszipcode") {             
180		if (temp.length != 5) {
181			displayError(controlName, vmsg);
182			invalidPageElements.push(controlName);
183		} else {
184			$(controlName + "-errorholder").html("");
185		} 
186	}
187}
188
189
190function zeroNotAllowed(componentId) {
191	$("#"+componentId).blur(function() { 
192		var value = parseInt($("#"+componentId).val().trim());
193		if (!isNaN(value)) {
194			if(value == 0) {
195				$("#"+componentId).attr('value', "");
196			}
197		} else {
198			$("#"+componentId).attr('value', "");
199		}										 
200	});
201}					  
202
203
204
205function addFormElementFormatting() {
206    // Default Value for all Radio button in the page
207    $('div[control-type=radio]').each(function (index) {
208        var controlname = $(this).attr("temp");
209
210        $(this).children('input').each(function (countindex, radioObj) {
211            if ($(radioObj).attr("default-value") == $(radioObj).val()) {
212                $("[name=" + controlname + "]").filter("[value=" + $(radioObj).val() + "]").attr("checked", "checked");
213            }
214        });
215    }); 
216
217	//isrowseparator is off on irxregistrationsection		     
218	$('div[isrowseparator=false]').each(function(index){
219	     var controlname = $(this).attr("id");
220	     if(controlname!=""){
221		     var field=controlname+"-rowSeparator";		    	    
222	    	 $('#'+field).remove('.rowSeparator');				    	 
223	     }			    
224	});
225
226
227	//isOtherFieldActive for Select box, attaching onChange event
228	$('div[isotherfield=true]').each(function(index){
229		var controlName = $(this).attr("temp");
230		var otherControlName = controlName+"-otherfield_div";
231		$("#" + controlName).change(function(){
232			$('#'+otherControlName).css('display', ($(this).val().toUpperCase() == 'OTHER') ? 'block' : 'none');
233		});
234	});
235
236    // For all irxInputItms
237    $("div[ control-type='irxInputItem']").each(function (index) {
238
239        // Year Masking
240        if ($(this).attr("validation") == 'yearmasking') {
241            $(this).children('input').each(function (countindex, objctr) {
242                $(objctr).unmask();
243                $(objctr).mask("9999");
244            });
245        }
246
247        // US Phone Number Masking
248        if ($(this).attr("validation") == 'usphonenumber') {
249            $(this).children('input').each(function (countindex, objctr) {
250                $(objctr).unmask();
251                $(objctr).mask("999-999-9999");
252            });
253        }
254        
255     	// US ZIP Masking
256        if ($(this).attr("validation") == 'uszipcode') {        
257            $(this).children('input').each(function (countindex, objctr) {
258                $(objctr).unmask();
259                $(objctr).mask("99999");
260            });
261        }
262
263    });
264
265	$("input[validation*='number']").keypress(function (e) {
266     //if the letter is not digit then display error and don't type anything
267     if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
268        e.preventDefault();
269        return false;
270    	}
271   });
272
273    // SumTo100
274	$('div[control-type=sumTo100Label]').each(function(index){
275		 var groupFields= $(this).attr("group-fields");
276		 var validationmsg=$(this).attr("validationmsg");
277		 var sumValue= parseInt($(this).attr("sumValue"));
278		 var id=$(this).attr("id");
279		 var splitIdArray= id.split('-');				 
280		 var groupFieldsArray = groupFields.split(',');
281		 var idValue=  splitIdArray[0] + "-errorholder";
282
283		 var labelId= splitIdArray[0] +"-sumTo100Label";				 
284		 $("#" + labelId).text("0%");
285		 var isAtLeast = $(this).attr("isAtLeast");
286
287		 $.each(groupFieldsArray, function(index, field) {
288			 field = field.trim();
289			//select the content of field when click.
290			 if($('#'+field)){
291					$('#'+field).bind('click',function(e){
292						 $(this).select();
293					});
294			}
295			 				 
296			//if field value is blanks, then default value set to Zero.
297			 if(!isNaN($("#"+ field).val())) {
298				 $("#"+field).val(0)
299				 }
300
301			 
302			 $("#" + field).bind('keyup blur', function(e){
303				 var code = (e.keyCode ? e.keyCode : e.which);
304				 if (code == 9) {
305					 $("#"+field).select();
306				 } else {
307					 var localSum = 0;
308					 
309					 var temp = trimNumber($("#"+field).val());
310					 $("#"+ field).val(temp);
311					 
312					//if field value is blanks, then default value set to Zero.
313					 if ($("#"+ field).val() == null || $("#"+ field).val().trim() == "" || isNaN($("#"+ field).val())){
314						 $("#"+field).val(0);
315						 $("#"+field).select();						 
316					 }
317					 
318					 $.each(groupFieldsArray, function(index, field){
319						 localSum=parseInt(localSum) + parseInt($("#"+ field).val().trim());							 
320					 });				 
321
322					if (localSum!="NaN"){
323						 $("#" + labelId).text(localSum+"%");
324					 }
325					else {
326						$("#" + labelId).text(sumValue+"%");
327					}
328					 
329					if(isAtLeast=="true"){
330						if ((sumValue!=-1) && (localSum<sumValue)) {
331							 $("#" + idValue).html(validationmsg);
332						 }
333						 else {
334							 $("#" + idValue).html("");							 
335						 	}
336
337					} else {
338					 if ((sumValue!=-1) && (localSum!=sumValue)) {
339						 $("#" + idValue).html(validationmsg);
340					 }
341					 else {
342						 $("#" + idValue).html("");							 
343					 	}
344					 }
345				 
346				 }
347				 
348			 });
349			});
350		});			    
351		//End-- SumTo100
352}
353
354function adjustLabels() {
355	$("div[ control-type='irxInputItem']").each(function (index) {
356		// Arranging the label of text field
357		// (i.e left, right, down, up)
358		changeLabelPos($(this));
359	});
360}
361
362function trimNumber(value) {
363	while (value.substr(0,1) == '0' && value.length>1) { value = value.substr(1,9999); }
364	return value;
365}
366
367function validateForm() {
368    var isValidForm = true;
369    var errorlist = new Array();
370
371	$(".required").removeClass("required");
372	$(".required-msg").removeClass("required-msg");
373
374
375    //If alternateEmail having non-unique email id.
376    var duplicateEmail = $("#tempRegdData").attr("duplicateEmail");    
377    if ($("#ALT_EMAIL_ADDRESS").length){
378	    if(duplicateEmail=="alternateEmail"){
379	    	isValidForm = false;
380			errorlist.push("ALT_EMAIL_ADDRESS-errorholder");
381	    }
382    }
383    
384    // Required field validation for the input component
385    $('input[data-required=true]').each(function (index) {		
386		if ($(this).is(":visible")) {	
387			if ($(this).attr("id") == duplicateEmail){
388				//If Email Address field having non-unique email id.
389				 isValidForm = false;
390				 errorlist.push($(this).attr("id")+"-errorholder");
391			} else {
392	            var idValue = $(this).attr("id") + "-errorholder";
393				var usrValue = $(this).val().trim();
394				this.value = usrValue; 
395
396		        if (usrValue == null || usrValue == '' || usrValue.charAt(0) == '-') {
397		            isValidForm = false;
398		            $("#" + idValue).html($(this).attr("data-errormessage")).addClass("required-msg");
399					$("#" + $(this).attr("id")).addClass("required");		
400		            isValidForm = false;
401		        } else {
402		        	if ($(this).attr("validation")=="email") {
403		        		var temp = $(this).val();
404		        		if (!isValidEmail(temp) && temp!= "") {
405	        				 displayError($(this).attr("id"), $(this).attr("customizevalidationmsg"));
406	        				 isValidForm = false;
407		        		}
408		        	} else {
409		    	        $("#" + idValue).html("");
410		        	}
411		        }
412			}
413		}
414    });
415
416    //  Length validations
417    $('input[type=text]').each(function (index) {
418		if ($(this).attr("minlength") > 0) {
419			var usrValue = $(this).val().trim();
420			if (( usrValue.length>0) && (usrValue.length < $(this).attr("minlength")) ){
421				errorlist.push($(this).attr("id")+"-errorholder");
422				displayError("#"+$(this).attr("id"), "This value must be at least "+$(this).attr("minlength")+" characters long.").addClass("required-msg");
423				isValidForm = false;
424			}
425		}
426		if ($(this).attr("reqlength") > 0) {
427			var usrValue = $(this).val().trim();
428			if (( usrValue.length>0) && (usrValue.length != $(this).attr("reqlength")) ){
429				errorlist.push($(this).attr("id")+"-errorholder");
430				displayError("#"+$(this).attr("id"), "This value must be "+$(this).attr("reqlength")+" characters long.").addClass("required-msg");
431				isValidForm = false;
432			}
433		}
434    });
435
436
437    
438    if ($("#FIRST_NAME").length) {
439		var maxLen = 40;
440		var nameLengthCheck = $("#PREFIX").val() + " " + $("#FIRST_NAME").val() + " " + $("#LAST_NAME").val();
441		if (nameLengthCheck.length > maxLen) {
442	    	isValidForm = false;
443	    	var over = nameLengthCheck.length - maxLen;
444	    	$("#firstName-errorholder").html("Your full name is " +  over + " letters too long. Please shorten either your last or first name.").addClass("required-msg");
445			errorlist.push("firstName-errorholder");
446	    }
447    }
448
449
450    if ($("#PRIMARY_ADDRESS_LINE_1").is(":visible")) {
451		if (($("#PRIMARY_ADDRESS_LINE_1").val().trim() != "") && $("#PRIMARY_ADDRESS_LINE_1").val().trim() == $("#PRIMARY_ADDRESS_LINE_2").val().trim()) {
452			$("#PRIMARY_ADDRESS_LINE_1-errorholder").html("Your Primary Address lines 1 and 2 are the same.").addClass("required-msg");
453			errorlist.push("PRIMARY_ADDRESS_LINE_1-errorholder");
454	    	isValidForm = false;
455		}				
456	}
457
458    if ($("#SECONDARY_ADDRESS_LINE_1").is(":visible")) {
459		if ($("#SECONDARY_ADDRESS_LINE_1").val().trim() == $("#SECONDARY_ADDRESS_LINE_2").val().trim()) {
460			$("#SECONDARY_ADDRESS_LINE_1-errorholder").html("Your Secondary Address lines 1 and 2 are the same.").addClass("required-msg").show();
461			errorlist.push("SECONDARY_ADDRESS_LINE_1-errorholder");
462	    	isValidForm = false;
463		}				
464	}
465
466    if ($("#MAIL_ADDRESS_LINE_1").is(":visible")) {
467		if ($("#MAIL_ADDRESS_LINE_1").val().trim() == $("#MAIL_ADDRESS_LINE_2").val().trim()) {
468			$("#MAIL_ADDRESS_LINE_1-errorholder").html("Your Mailing Address lines 1 and 2 are the same.").addClass("required-msg").show();
469			errorlist.push("MAIL_ADDRESS_LINE_1-errorholder");
470	    	isValidForm = false;
471		}				
472	}
473
474	//validation primary speciality should not be same as secondary speciality	     
475	if ($("#Specialties").is(":visible")) {		
476		var primarySpecialty = $("#primarySpecSearchTerm").val();
477		var secondarySpecialty = $("#secondarySpecSearchTerm").val();
478		if (primarySpecialty=="") {
479		   $("#primarySpecSearchTerm-errorholder").html("Primary specialty is required.").addClass("required-msg");
480		   errorlist.push("primarySpecSearchTerm-errorholder");
481		   isValidForm = false;
482		} else if (primarySpecialty==secondarySpecialty) {
483		   $("#primarySpecSearchTerm-errorholder").html("Primary and Secondary specialties must be different.").addClass("required-msg");
484		   errorlist.push("PRIMARY-errorholder");
485		   isValidForm = false;
486		} else {
487		   $("#primarySpecSearchTerm-errorholder").html("");
488		}
489		if (secondarySpecialty=="") {
490			$("#SECONDARY_SPEC_CODE").val("");
491			setSpecialty();
492		}
493	}
494
495    // Required field Validation for other input component
496    $('div[type="otherinputfiled"]').each(function (index) {	    
497    	var componentDivid=$(this).attr("id");
498    	var componentid= componentDivid.substring(0, componentDivid.indexOf("-otherfield_div"));
499    	//var componentotherfieldid=componentid+"-otherfield";
500    	var componentotherfieldid=componentid+"_OTH";
501    	var componentotherfieldErrorid=componentid+"-errorholder_otherfield";
502    	if ($("#"+componentotherfieldid).is(":visible")){
503	    	if($("#"+componentotherfieldid).length){    
504	    		if($("#"+componentid).val().trim()!="0"){
505	    			if($("#"+componentotherfieldid).val().trim()==""){     
506	    				$("#" + componentotherfieldErrorid).html($(this).attr("otherfieldrequiredmsg")).addClass("required-msg");
507	        			isValidForm = false;
508	        			errorlist.push(componentDivid);
509	    			}else{
510	    				 $("#" + componentotherfieldErrorid).html("");    
511	    			}
512	    		}
513	    	}
514    	}
515    });
516
517	//validation primary speciality should not be same as secondary speciality	     
518	if ($("#PRIMARY").is(":visible")) {
519	   $("#PRIMARY-errorholder").html('');
520	   $("#SECONDARY-errorholder").html('');
521	   $("#PRIMARY_Error").html('');		    	  
522
523		var primarySpecialty = $('input[name="PRIMARY_SPEC_SEL"]:checked').val();
524		var secondarySpecialty = $('input[name="SECONDARY_SPEC_SEL"]:checked').val();
525
526		if (primarySpecialty==undefined) {
527		   $("#PRIMARY_Error").html("Please select a Primary Specialty.");
528		   errorlist.push("PRIMARY_Error");
529		   isValidForm = false;
530		} else if (primarySpecialty==secondarySpecialty) {
531		   $("#SECONDARY-errorholder").html($("#SECONDARY").attr("othervalidationmsg")).addClass("required-msg");
532		   errorlist.push("SECONDARY-errorholder");
533		   isValidForm = false;
534		}
535	}
536
537
538    // Required field Validation for the MultiSelect Component (i.e
539    // DOB like component)
540    $('div[mulitselect-data-required=true]').each(function (index) {
541    	var isValidFormLocal = true;    
542        $(this).children('select').each(function () {
543            if ($(this).val().trim() == 'select' ) {
544            	isValidFormLocal = false;
545            }
546        })
547        var idValue = $(this).attr("id") + "-errorholder";       
548        if (!isValidFormLocal) {
549            isValidForm = false;
550            $("#" + idValue).html($(this).attr("data-errormessage")).addClass("required-msg");
551            errorlist.push($(this).attr("id"));
552        } else {
553            $("#" + idValue).html("");
554        }
555    });
556
557
558    // Required field validation for the select box component
559    $('select[data-required=true]').each(function (index) {
560		if ($(this).is(":visible")) {
561	        var idValue = $(this).attr("id") + "-errorholder";
562	        if ($(this).val() == "select" || $(this).val() == '') {
563	            isValidForm = false;
564	            $("#" + idValue).html($(this).attr("data-errormessage")).addClass("required-msg");
565	            errorlist.push($(this).attr("id")+"-select");
566	        } else {
567	            $("#" + idValue).html('');
568	        }	        
569	        // Validation for other value selected
570	        if($(this).val() == "other" || $(this).val() == "Other" ){
571	        	//var otherControlName = $(this).attr("id")+"-otherfield";
572	        	var otherControlName = $(this).attr("id")+"_OTH";
573	        	var otherControldiv = $(this).attr("id")+"-otherfield_div";
574	        	var otherControldivError = $(this).attr("id")+"-errorholder_otherfield";
575	        	if($("#"+otherControldiv).length){	        
576	        		if ($("#"+otherControlName).val().trim()==""){	        
577	        			$("#" + otherControldivError).html($(this).attr("othervalidationmsg")).addClass("required-msg");
578	        			isValidForm = false;
579	        			errorlist.push(otherControldiv);
580	        		}else
581	        			{
582	        			 $("#" + otherControldivError).html("");
583	        		}
584	        	}
585	        }
586	        
587		}
588    });
589
590    // Required field validation for all the check box component in
591    // the form
592    $('div[control-type=checkbox]').each(function (index) {
593		if ($(this).is(":visible")) {
594	        if ($(this).attr("data-required") == 'true') {
595	            var flag = false;
596	            $(this).find('input').each(function () {
597	                if ($(this).is(':checked')) {
598	                    flag = true;
599	                }
600	            });
601	            var idValue = $(this).attr("temp") + "-errorholder";
602	            if (!flag) {
603	                isValidForm = false;
604	                $("#" + idValue).html($(this).attr("data-errormessage")).addClass("required-msg");	               
605	                errorlist.push($(this).attr("id"));
606	            } else {
607	                $("#" + idValue).html("");
608	            }
609	        }
610		}
611    });
612
613    // Required field validation for all the radio component in the form
614    $('div[control-type=radio]').each(function (index) {
615		if ($(this).is(":visible")) {
616	        if ($(this).attr("data-required") == 'true') {
617				console.log($(this).attr("id"));		
618
619	            var flag = false;
620	            $(this).find('input').each(function () {
621				console.log($(this).attr("id"));		
622	                if ($(this).is(':checked')) {
623	                    flag = true;
624	                }
625	            });
626	            var idValue = $(this).attr("temp") + "-errorholder";
627	            if (!flag) {
628	                isValidForm = false;
629	                $("#" + idValue).html($(this).attr("data-errormessage")).addClass("required-msg");
630	                errorlist.push($(this).attr("id"));                
631	            } else {
632	                $("#" + idValue).html("");
633	            }
634	        }
635		}
636    });
637
638
639    // Required field validation for All the irxsumTo100Label
640    $('div[control-type=sumTo100Label]').each(
641    function (index) {
642        if ($(this).attr("data-required") == 'true') {
643            var id = $(this).attr("id");
644            var splitIdArray = id.split('-');
645            var idValue = splitIdArray[0] + "-sumTo100Label";
646            var idValueForError = splitIdArray[0] + "-errorholder";
647            var templocalSum = $("#" + idValue).text();
648            var sumValue = parseInt($(this).attr("sumValue"));
649            var isAtLeast = $(this).attr("isAtLeast");
650
651            $("#" + idValueForError).html("")
652            if (templocalSum != null) {
653                templocalSum = templocalSum.slice(0, -1);
654				templocalSum = parseInt(templocalSum);
655            }
656
657            if (isAtLeast=="true") {
658            	if ((sumValue!=-1) && (templocalSum < sumValue)) {
659	                isValidForm = false;
660	                $("#" + idValueForError).html($(this).attr("mandatoryvalidationmsg")).addClass("required-msg");
661	                //get div_id of the 1st input item of irxsumTo100Label
662	                var fistInputDivId= $(this).parent().children("div").attr("id");               
663	                errorlist.push(fistInputDivId);
664	            }
665            } else {
666                 if ((sumValue!=-1) && (templocalSum != sumValue)) {
667	                isValidForm = false;
668	                $("#" + idValueForError).html($(this).attr("mandatoryvalidationmsg")).addClass("required-msg");
669	                //get div_id of the 1st input item of irxsumTo100Label
670	                var fistInputDivId= $(this).parent().children("div").attr("id");               
671	                errorlist.push(fistInputDivId);
672	            }
673            }
674        }
675    });
676
677	// For Nurse EDC
678	if ($("#WEEKLY_VIS_SALES_REPS_PAIN").length){
679		var v1 = parseInt($("#WEEKLY_VIS_SALES_REPS_PAIN").val());
680		var v2 = parseInt($("#WEEKLY_VIS_SALES_REPS").val());
681
682		if (v1 > v2) {
683			errorlist.push("#WEEKLY_VIS_SALES_REPS_PAIN");
684			var msg =  $("#WEEKLY_VIS_SALES_REPS_PAIN").attr("customizevalidationmsg") + " " + $("#WEEKLY_VIS_SALES_REPS").val();
685			$("#WEEKLY_VIS_SALES_REPS_PAIN-errorholder").html(msg).addClass("required-msg");
686			isValidForm = false;
687		}
688	}
689
690
691	// For NEPH
692	if ($("#PCT_TREATMENT_1").length){
693		var v1 = parseInt($("#PCT_TREATMENT_1").val());
694		var v2 = parseInt($("#PCT_TREATMENT_2").val());
695
696		if ((v1+v2) > 100) {
697			var msg =  $("#PCT_TREATMENT_1").attr("customizevalidationmsg");
698			$("#PCT_TREATMENT_2-errorholder").html(msg).addClass("required-msg");
699			isValidForm = false;
700		}
701	}
702
703	
704	return isValidForm;
705}
706
707
708function addAddressHelpers(trxUserBean) {
709	if ($("#PRIMARY_POSTAL_CODE")){
710		$("#PRIMARY_CITY_NAME").attr('disabled', 'disabled');
711		if (trxUserBean.primary_postal_code==null) {
712			$("#PRIMARY_CITY_NAME-container_control").hide();
713			$("#PRIMARY_STATE_CODE-container_control").hide();
714		}
715
716		 $("#PRIMARY_POSTAL_CODE").blur(function(){
717			 if(!isNaN($("#PRIMARY_POSTAL_CODE").val())){
718				 $("#nextBtn").hide();
719				 waitSpinnerOn("#PRIMARY_POSTAL_CODE-container_control",POSTAL_CODE_CHECK);
720				 RegistrationDAO.checkZipcode($("#PRIMARY_POSTAL_CODE").val(), function(addressData) {
721					if (addressData.state!=null) 
722						$("#PRIMARY_STATE_CODE").val(addressData.state);
723				    else
724						$("#PRIMARY_STATE_CODE").val("select");
725
726					if (addressData.city!=null) 
727						$("#PRIMARY_CITY_NAME").val(addressData.city);
728					else
729						$("#PRIMARY_CITY_NAME").val("");
730						
731					$("#PRIMARY_CITY_NAME-container_control").show();
732					$("#PRIMARY_STATE_CODE-container_control").show();
733
734					waitSpinnerOff("#PRIMARY_POSTAL_CODE-container_control");
735					$("#nextBtn").show();
736				 });
737			}
738		});
739	}
740
741	if ($("#SECONDARY_POSTAL_CODE")){
742		$("#SECONDARY_CITY_NAME").attr('disabled', 'disabled');
743		if (trxUserBean.secondary_postal_code==null) {
744			$("#SECONDARY_CITY_NAME-container_control").hide();
745			$("#SECONDARY_STATE_CODE-container_control").hide();
746		}
747
748		 $("#SECONDARY_POSTAL_CODE").blur(function(){
749			 if(!isNaN($("#SECONDARY_POSTAL_CODE").val())){
750				 tempCity="#SECONDARY_CITY_NAME"; tempState="#SECONDARY_STATE_CODE";tempZip="#SECONDARY_POSTAL_CODE";					 
751				 $("#nextBtn").hide();
752				 waitSpinnerOn("#SECONDARY_POSTAL_CODE-container_control",POSTAL_CODE_CHECK);
753				 RegistrationDAO.checkZipcode($("#SECONDARY_POSTAL_CODE").val(), function(addressData) {
754					if (addressData.state!=null) $("#SECONDARY_STATE_CODE").val(addressData.state);
755					if (addressData.city!=null) $("#SECONDARY_CITY_NAME").val(addressData.city);
756						
757					$("#SECONDARY_CITY_NAME-container_control").show();
758					$("#SECONDARY_STATE_CODE-container_control").show();
759
760					waitSpinnerOff("#SECONDARY_POSTAL_CODE-container_control");
761					$("#nextBtn").show();
762				 });
763			}
764		});
765	}
766
767	if ($("#MAIL_POSTAL_CODE")){
768		$("#MAIL_CITY_NAME").attr('disabled', 'disabled');
769		if (trxUserBean.mail_postal_code==null) {
770			$("#MAIL_CITY_NAME-container_control").hide();
771			$("#MAIL_STATE_CODE-container_control").hide();
772		}
773
774		 $("#MAIL_POSTAL_CODE").blur(function(){
775			 if(!isNaN($("#MAIL_POSTAL_CODE").val())){
776				 tempCity="#MAIL_CITY_NAME"; tempState="#MAIL_STATE_CODE";tempZip="#MAIL_POSTAL_CODE";					 
777				 $("#nextBtn").hide();
778				waitSpinnerOn("#MAIL_POSTAL_CODE-container_control",POSTAL_CODE_CHECK);
779				 RegistrationDAO.checkZipcode($("#MAIL_POSTAL_CODE").val(), function(addressData) {
780					if (addressData.state!=null) $("#MAIL_STATE_CODE").val(addressData.state);
781					if (addressData.city!=null) $("#MAIL_CITY_NAME").val(addressData.city);
782						
783					$("#MAIL_CITY_NAME-container_control").show();
784					$("#MAIL_STATE_CODE-container_control").show();
785
786					waitSpinnerOff("#MAIL_POSTAL_CODE-container_control");
787					$("#nextBtn").show();
788				 });
789
790			}
791		});
792	}
793
794	RegistrationDAO.getStates(function (states) {
795		if ($("#MAIL_STATE_CODE").length){
796			dwr.util.addOptions("MAIL_STATE_CODE", states);
797			if (trxUserBean) $("#MAIL_STATE_CODE").val(trxUserBean.mail_state_code);
798		}
799		if ($("#SECONDARY_STATE_CODE").length){
800			dwr.util.addOptions("SECONDARY_STATE_CODE", states);
801			if (trxUserBean) $("#SECONDARY_STATE_CODE").val(trxUserBean.secondary_state_code);
802		}
803		if ($("#PRIMARY_STATE_CODE").length){
804			dwr.util.addOptions("PRIMARY_STATE_CODE", states);
805			if (trxUserBean) $("#PRIMARY_STATE_CODE").val(trxUserBean.primary_state_code);
806		}
807	});
808
809}
810
811
812function taxChangeHandlers(trxUserBean) {
813	$("#TAXPAYER_ID1").bind('keyup', function(e){
814		if ($("#TAXPAYER_ID3").length) {
815			if ($(this).val().length == 3) $("#TAXPAYER_ID2").focus();
816		} else {
817			if ($(this).val().length == 2) $("#TAXPAYER_ID2").focus();
818		}
819	});
820
821	$("#TAXPAYER_ID2").bind('keyup', function(e){
822		if ($(this).val().length == 2) $("#TAXPAYER_ID3").focus();
823	});
824}
825
826
827function clearErrorMessageTax(){
828	$("#TAXPAYER_ID-errorholder").html('');
829}
830
831
832function dentistCheckBoxHandler() {
833	if ($('#cbDentistName_1').is(':checked'))	{
834		$("#searchTerm_errorholder").html("");
835		$("#DENTIST_FIRST_NAME-container_control").show();
836		$("#DENTIST_LAST_NAME-container_control").show();
837		$("#DENTIST_ZIP_CODE-container_control").show();
838		$("#DENTIST_FIRST_NAME-errorholder").show();
839		$("#DENTIST_LAST_NAME-errorholder").show();
840		$("#DENTIST_ZIP_CODE-errorholder").show();
841
842		$("#dentistNameMsg").show();
843		$("#DentistSearchTerm").val("");
844		$("#DentistSearchTerm").attr("data-required",false);
845		$("#DentistSearchTerm-errorholder").html("");
846		$("#DENTIST_ID").val("-1");
847	} else {
848		$("#DENTIST_FIRST_NAME-container_control").hide();
849		$("#DENTIST_LAST_NAME-container_control").hide();
850		$("#DENTIST_ZIP_CODE-container_control").hide();
851		$("#DENTIST_FIRST_NAME-errorholder").hide();
852		$("#DENTIST_LAST_NAME-errorholder").hide();
853		$("#DENTIST_ZIP_CODE-errorholder").hide();
854
855		$("#dentistNameMsg").hide();
856		$("#DentistSearchTerm").attr("data-required",true);
857		$("#DENTIST_FIRST_NAME_errorholder").html("");
858		$("#DENTIST_LAST_NAME_errorholder").html("");
859		$("#DENTIST_ZIP_CODE_errorholder").html("");
860	}
861}		
862
863
864function checkDuplicateEmail(trxUserBean, componentId){
865	var tempEmail=null;
866	if (trxUserBean==undefined) return;
867
868	var emailAddress = $("#"+componentId).val().toLowerCase().trim();
869	$("#"+componentId).val(emailAddress);
870
871	if ($("#CONFIRM_EMAIL_ADDRESS").length) {
872		var confirmEmailAddress = $("#CONFIRM_EMAIL_ADDRESS").val().toLowerCase().trim();
873		$("#CONFIRM_EMAIL_ADDRESS").val(confirmEmailAddress);
874
875		if(confirmEmailAddress == emailAddress)
876			$("#CONFIRM_EMAIL_ADDRESS-errorholder").html("");					 
877	}
878
879	if (componentId == "EMAIL_ADDRESS")
880		tempEmail = trxUserBean.email_address;
881	else
882	   tempEmail = trxUserBean.alt_email_address;
883
884	var componentIdValue = $("#"+componentId).val().toLowerCase().trim();
885	if (isValidEmail(componentIdValue) && (componentIdValue!=null) && (tempEmail != componentIdValue)) {
886		waitSpinnerOn("#EMAIL_ADDRESS-container_control", EMAIL_CHECK);
887		RegistrationDAO.checkEmail(trxUserBean.targetrx_id, componentIdValue, panelSite, function (isUnique) {
888			retVal = isUnique;
889			if (!isUnique) {
890				$("#"+componentId).focus(function(){									    
891					this.select();
892				});
893
894				$("#"+componentId+"-errorholder").html("This Email address is already registered with us.");
895				$("#tempRegdData").attr("duplicateEmail", componentId);
896				waitSpinnerOff("#EMAIL_ADDRESS-container_control");
897				$("#EMAIL_ADDRESS").focus();
898			} else {
899				$("#"+componentId+"-errorholder").html("");
900				$("#tempRegdData").attr("duplicateEmail", "");
901				waitSpinnerOff("#EMAIL_ADDRESS-container_control");
902				
903				trxUserBean.email_address = emailAddress;
904				$("#PREFERRED_FULFILLMENT_METHOD-container_control").show();
905				
906				// Amazon disable					
907				if ((trxUserBean!=undefined) && ((trxUserBean.preferred_fulfillment_method == null) || (trxUserBean.preferred_fulfillment_method == "CHECK"))) {
908					payMethod = "CHECK";
909					$("input[name=PREFERRED_FULFILLMENT_METHOD][value='CHECK']").prop('checked', true);
910					$("input[name=PREFERRED_FULFILLMENT_METHOD][value='AMAZON']").parent().html("<b>NOTE: Payment by Amazon is temporarily unavailable.</b>");
911					$("input[name=PREFERRED_FULFILLMENT_METHOD][value='AMAZON']").remove();
912				} 
913			}
914		});
915	} else {
916		$("#tempRegdData").attr("duplicateEmail", "");
917	}
918}
919
920
921
922function initPharmChangeHandlers() {
923	$("#PRIMARY_PHARM_ZIPCODE").change(function(){
924		var pzipval = $("#PRIMARY_PHARM_ZIPCODE").val().replace(/_/,"");
925		if ((pzipval.length==5) && (!lookup)) {
926			lookup = true;
927			getPharms(pzipval, "PRIMARY_PHARMACY", "#pharmSection1_table", "");
928		}	   
929	});	 
930
931	$('#PRIMARY_PHARM_ZIPCODE').keyup(function () { 
932		$("#PRIMARY_PHARMACY_USER_VALUE-container_control").hide();
933		var pzipval = $("#PRIMARY_PHARM_ZIPCODE").val().replace(/_/,"");
934		if (pzipval.length==5) { 
935			$('#PRIMARY_PHARM_ZIPCODE').trigger('change');
936		} else {
937			$("#PRIMARY_PHARMACY-container_control").hide();
938			lookup = false;
939		}
940	});
941
942	$("#PRIMARY_PHARMACY").change(function(){
943		$("#PRIMARY_PHARMACY_USER_VALUE-errorholder").html("");
944		var pval = $("#PRIMARY_PHARMACY").val();
945		if (pval==0) {
946			$("#PRIMARY_PHARMACY_USER_VALUE-container_control").show();
947		} else {
948			$("#PRIMARY_PHARMACY_USER_VALUE-container_control").hide();
949			$("#PRIMARY_PHARMACY_USER_VALUE").val("");
950		}
951	});
952
953	$("#SECONDARY_PHARM_ZIPCODE").change(function(){
954		var pzipval = $("#SECONDARY_PHARM_ZIPCODE").val().replace(/_/,"");
955		if ((pzipval.length==5) && (!lookup)) {
956			lookup = true;
957			getPharms(pzipval, "SECONDARY_PHARMACY", "#pharmSection3_table", "");
958		}
959	});
960
961	$('#SECONDARY_PHARM_ZIPCODE').keyup(function () { 
962		$("#SECONDARY_PHARMACY_USER_VALUE-container_control").hide();
963		var pzipval = $("#SECONDARY_PHARM_ZIPCODE").val().replace(/_/,"");
964		if (pzipval.length==5) { 
965			$('#SECONDARY_PHARM_ZIPCODE').trigger('change');
966		} else {
967			$("#SECONDARY_PHARMACY-container_control").hide();
968			lookup = false;
969		}
970	});
971
972	$("#SECONDARY_PHARMACY").change(function(){
973		$("#SECONDARY_PHARMACY_USER_VALUE-errorholder").html("");
974		var pval = $("#SECONDARY_PHARMACY").val();
975		if (pval==0) {
976			$("#SECONDARY_PHARMACY_USER_VALUE-container_control").show();
977		} else {
978			$("#SECONDARY_PHARMACY_USER_VALUE-container_control").hide();
979		}
980	});
981	
982	$("input[name^='PHARM_SECOND_LOCATION']").click(function() { 	
983		if ($("input[name='PHARM_SECOND_LOCATION']:checked").val()=='Y') {
984			$("#SECONDARY_PHARM_ZIPCODE-container_control").show();
985		} else {
986			$("#SECONDARY_PHARM_ZIPCODE-container_control").hide();
987		}
988	});
989
990}
991
992
993function salesRepChange() {
994	if ($("#TYPE_VIS_SALES_REPS-container_control").length) {
995		$("input:checkbox[name=TYPE_VIS_SALES_REPS]").click(function() { 
996		    var value = $(this).val(); 
997		    var flag = false;
998			$('input:checkbox[name=TYPE_VIS_SALES_REPS]').each(function (index) {
999				var tempvalue = $(this).val(); 
1000				if ((tempvalue!='None of these reps visit my office') && $(this).is(':checked'))
1001					flag =true;                              
1002			});
1003
1004			if ((value=='None of these reps visit my office') && $(this).is(':checked')) {
1005				$("input:checkbox[name=TYPE_VIS_SALES_REPS]").removeAttr('checked'); 
1006				$(this).attr('checked',true);
1007				$("#WEEKLY_VIS_SALES_REPS").attr('disabled','disabled');
1008				$("#WEEKLY_VIS_SALES_REPS").val("0");
1009			} else {
1010				$('input:checkbox[value=\'None of these reps visit my office\']').attr('checked',fal
1010se);
1011				$("#WEEKLY_VIS_SALES_REPS").removeAttr('disabled');
1012				$("#WEEKLY_VIS_SALES_REPS").val("");
1013			}
1014		}); 
1015	}
1016
1017	if ($("#POLICY_VIS_SALES_REPS-container_control").length) {
1018		$("input:checkbox[name=POLICY_VIS_SALES_REPS]").click(function() { 
1019		    var value = $(this).val(); 
1020		    if ((value=='None of these policies apply') && $(this).is(':checked')) {
1021				$("input:checkbox[name=POLICY_VIS_SALES_REPS]").removeAttr('checked'); 
1022				$(this).attr('checked',true);
1023			} else {
1024				$('input:checkbox[value=\'None of these policies apply\']').attr('checked',false);
1025			}
1026		}); 
1027	}
1028
1029}
1030
1031
1032function getPharms(zipcode, eleName, waitName, value) {
1033	waitSpinnerOn(waitName, SEARCHING);
1034	$("#nextBtn").hide();
1035	zipcode = zipcode.replace(/_/g, '');
1036
1037	RegistrationDAO.getPharmaciesFromZipcode(zipcode, function (pharms) {
1038		dwr.util.removeAllOptions(eleName);
1039		dwr.util.addOptions(eleName, {"select":PLS_SELECT});
1040
1041		for(var prop in pharms) {
1042			$('#'+eleName).append($('<option>', { value : pharms[prop] }).text(prop));
1043		}
1044		dwr.util.addOptions(eleName, {"0":NO_PHARM});
1045
1046		if (value != "") { // if already selected
1047			$('#'+eleName).val(value);
1048		}
1049
1050		waitSpinnerOff(waitName);
1051		$("#nextBtn").show();
1052		$('#'+eleName+'-container_control').show();
1053		lookup = false;
1054	});	
1055}
1056
1057function initAllHospitalNames() {
1058	if($("#PRIMARY_HOSP_AFF").length) {
1059		$("#next").hide();
1060		waitSpinnerOn("#PRIMARY_HOSP_AFF", LOADING);
1061
1062		RegistrationDAO.getAllHospitalName(function (hospitalNames) {
1063			$("#PRIMARY_HOSP_AFF").autocomplete( {
1064				source: hospitalNames,
1065				minLength:"3",
1066				position: { my : "center", at: "center" }
1067				});
1068			waitSpinnerOff("#PRIMARY_HOSP_AFF");
1069			$("#next").show();
1070		});
1071	}
1072}
1073
1074
1075
1076function initDentistNames(surveyData) {
1077	var dentistId = -1;
1078
1079	$('#DentistSearchTerm').after("<span id='searchWait'></span>");
1080
1081	$('#DentistSearchTerm').autocomplete({
1082        source: function (request, response) {
1083			$("#cont_but").hide();
1084			$("#nextBtn").hide();
1085			
1086			waitSpinnerOn("#searchWait", SEARCHING);
1087			$('#wait').css("margin-left","220px").css("margin-top","-27px");
1088			//$('#DentistSearchTerm').prop("disabled",true);
1089            $.ajax({
1090                url: "/sitejsp/getDentists.jsp",
1091                dataType: "xml",
1092                type: "GET",
1093                data: {
1094                     content: $.trim($('#DentistSearchTerm').val()),
1095                     zip: trxUserBean.primary_postal_code
1096            }, success: function (xmlResponse) {
1097				if ($("dentist targetrxId", xmlResponse).text() == "-1") { // not found
1098					waitSpinnerOff("#searchWait");
1099					$("#DentistSearchTerm").val("");
1100					$("#cont_but").show();
1101					$("#nextBtn").show();
1102					$('#DentistSearchTerm').prop("disabled",false);
1103					alert("Sorry, we could not find your dentist. Please try again or click the checkbox below.");
1104					return;
1105					}
1106
1107                var data = $("dentist", xmlResponse).map(function (ul, item) {
1108                    return {
1109						label: $("name", this).text(),
1110						value:  $("targetrxId", this).text()
1111                    };
1112                });
1113				
1114                response(data);
1115
1116				waitSpinnerOff("#searchWait");
1117				$("#cont_but").show();
1118				$("#nextBtn").show();
1119
1120				//$('#DentistSearchTerm').prop("disabled",false);
1121            }
1122        });
1123    },
1124	minLength:"3",
1125	delay: 600,
1126	select: function(event, ui) {
1127		$("#DentistSearchTerm-errorholder").html("");
1128		if (ui.item.value==-1) return;
1129		$("#DentistSearchTerm").val(ui.item.label);
1130		$("#DENTIST_ID").val(ui.item.value);
1131		$('#cbDentistName_1').attr("checked",false);
1132		dentistCheckBoxHandler();
1133		return false;
1134	}
1135    });
1136
1137	if (surveyData["DENTIST_ID"] != undefined) {
1138		dentistId = surveyData["DENTIST_ID"];
1139		if (dentistId != -1) {
1140			RegistrationDAO.getDentistsById(dentistId, function (trxDentist) {
1141				if (trxDentist!=null) {
1142					var dentist = trxDentist.last_name + ", " + trxDentist.first_name +
1143						" (" + trxDentist.primary_city_name + ", " + trxDentist.primary_state_code + " " + trxDentist.primary_postal_code + ")";
1144					$("#DentistSearchTerm").val(dentist);
1145					}
1146			});
1147		}
1148	}
1149	$("#DentistSearchTerm").after("<input type='hidden' id='DENTIST_ID' value='"+dentistId+"' />");
1150}
1151
1152
1153
1154function infusionSuiteChange() {
1155	if ($("#ONSITE_INFUSION_SUITE-container_control").length) {
1156		$("#NUM_INFUSION_CHAIRS-container_control").hide();
1157
1158		$("#ONSITE_INFUSION_SUITE-container_control").click(function() { 
1159			if ($("#ONSITE_INFUSION_SUITE-container_control input[type='radio']:checked").val()=='Y') {
1160		    	$("#NUM_INFUSION_CHAIRS-container_control").show();
1161			} else {
1162			    $("#NUM_INFUSION_CHAIRS-container_control").hide();
1163			    $("#NUM_INFUSION_CHAIRS-errorholder").html('');
1164			    $("#NUM_INFUSION_CHAIRS").val('');
1165			}
1166		});
1167	}
1168}
1169
1170
1171function CommitteeChange() {
1172	if ($("#SERVE_P_T_COMM_FLAG-container_control").length) {
1173		$("#P_T_COMM-container_control").hide();
1174
1175		$("#SERVE_P_T_COMM_FLAG-container_control").click(function() { 
1176			if ($("#SERVE_P_T_COMM_FLAG-container_control input[type='radio']:checked").val()=='Y') {
1177		    	$("#P_T_COMM-container_control").show();
1178			} else {
1179			    $("#P_T_COMM-container_control").hide();
1180			    $("#P_T_COMM-errorholder").html('');
1181			    $("#P_T_COMM").val('');
1182			}
1183		});
1184	}
1185}
1186
1187
1188
1189function practiceChange(panel_id) {
1190	$("#TYPE_PRACT").change(function() {
1191		if (($('#TYPE_PRACT').val() == 'Solo practice') || ($('#TYPE_PRACT').val() == 'select')) {
1192			$("#NUM_PHYS_IN_PRACT-container_control").hide();
1193			$("#NUM_PHYS_IN_PRACT").val('1');
1194			$("#NUM_ONCS-container_control").hide();
1195			$("#NUM_PHYS_IN_PRACT-errorholder").hide();
1196			$("#NUM_ONCS-errorholder").hide();
1197			$("#NUM_ONCS-errorholder").html('');
1198			$("#NUM_PHYS_IN_PRACT-errorholder").html('');
1199
1200			if (panel_id==16) {
1201				$("#NUM_PHYS_IN_PRACT").val('');
1202				$("#NUM_ONCS").val('1');
1203			}
1204		} else {
1205			$("#NUM_PHYS_IN_PRACT-container_control").show();
1206			$("#NUM_PHYS_IN_PRACT-errorholder").show();
1207			$("#NUM_PHYS_IN_PRACT").val('');
1208			$("#NUM_ONCS").val('');
1209			if (panel_id==16){
1210				 $("#NUM_ONCS-container_control").show();
1211				 $("#NUM_ONCS-errorholder").show();
1212			}
1213		}
1214	});
1215}
1216
1217
1218function salesRepLimitingChange() {
1219	if ($("#SALES_REP_LIMITING-container_control").length) {
1220		$("#SALES_REP_LIMITING-container_control").click(function() { 
1221			if ($("#SALES_REP_LIMITING-container_control input[type='radio']:checked").val()=='Y') {
1222		    	$("#SALES_REP_LIMITING_COM-container_control").show();
1223			} else {
1224			    $("#SALES_REP_LIMITING_COM-container_control").hide();
1225			    $("#SALES_REP_LIMITING_COM-errorholder").html('');
1226			    $("#SALES_REP_LIMITING_COM").val('');
1227			}
1228		});
1229		
1230	}
1231}
1232
1233function getBirthDates(trxUserBean) {
1234	// dynamic years pop - min age is 20 yrs, max is 100
1235	var sYear = new Date().getFullYear() - 20;
1236	var eYear = new Date().getFullYear() - 100;
1237	var years = new Array();
1238	for (var i=sYear; i > eYear; i--)
1239		years.push(i);
1240	dwr.util.addOptions("BIRTH_DATE", years);
1241	if (trxUserBean.birth_date != null) {
1242		var dayParts = trxUserBean.birth_date.split("/");
1243		if (dayParts[2] < eYear) 
1244			$('#BIRTH_DATE').append($('<option>', { value : dayParts[2] }).text(dayParts[2])); 
1245		$("#BIRTH_DATE").val(dayParts[2]);
1246	}
1247}
1248
1249function getPharmYears() {
1250	var sYear = new Date().getFullYear();
1251	var eYear = new Date().getFullYear() - 100;
1252	var years = new Array();
1253	for (var i=sYear; i > eYear; i--)
1254		years.push(i);
1255	dwr.util.addOptions("PHARM_YEAR_CERTIFIED", years);
1256}
1257
1258function getResidentYears() {
1259	var startYear = new Date().getFullYear();
1260	var endYear = new Date().getFullYear()- 50;
1261	var tempyears = new Array();
1262	for (var i=startYear ; i > endYear ; i--)
1263		tempyears .push(i);
1264	dwr.util.addOptions("RESIDENT_COMPL_YEAR", tempyears );
1265}
1266
1267
1268function validateTaxInfo() {			
1269	// ssn and tax id verifications
1270    if ($("#TAXPAYER_ID1").is(":visible")) {
1271		var ssnOK = true;
1272		if (($("#TAXPAYER_ID1").val().length < 3) || ($("#TAXPAYER_ID2").val().length < 2) || ($("#TAXPAYER_ID3").val().length < 4)) {
1273			ssnOK = false;
1274		} else if ($("#TAXPAYER_ID1").val() == "000") {
1275			ssnOK = false;
1276		} else if ($("#TAXPAYER_ID1").val() == "666") {
1277			ssnOK = false;
1278		} else if (($("#TAXPAYER_ID1").val() == "123") && ($("#TAXPAYER_ID2").val() == "45") && ($("#TAXPAYER_ID3").val() == "6789")) {
1279			ssnOK = false;
1280		} else if (($("#TAXPAYER_ID1").val() == "078") && ($("#TAXPAYER_ID2").val() == "05") && ($("#TAXPAYER_ID3").val() == "1120")) {
1281			ssnOK = false;
1282		} else if (($("#TAXPAYER_ID1").val() == "219") && ($("#TAXPAYER_ID2").val() == "09") && ($("#TAXPAYER_ID3").val() == "9999")) {
1283			ssnOK = false;
1284		} else if ($("#TAXPAYER_ID1").val()[0] == "9") {
1285			ssnOK = false;
1286		} else if (($("#TAXPAYER_ID1").val() == "111") && ($("#TAXPAYER_ID2").val() == "11") && ($("#TAXPAYER_ID3").val() == "1111")) {
1287			ssnOK = false;
1288		} else if (($("#TAXPAYER_ID1").val() == "222") && ($("#TAXPAYER_ID2").val() == "22") && ($("#TAXPAYER_ID3").val() == "2222")) {
1289			ssnOK = false;
1290		} else if (($("#TAXPAYER_ID1").val() == "333") && ($("#TAXPAYER_ID2").val() == "33") && ($("#TAXPAYER_ID3").val() == "3333")) {
1291			ssnOK = false;
1292		} else if (($("#TAXPAYER_ID1").val() == "444") && ($("#TAXPAYER_ID2").val() == "44") && ($("#TAXPAYER_ID3").val() == "4444")) {
1293			ssnOK = false;
1294		} else if (($("#TAXPAYER_ID1").val() == "555") && ($("#TAXPAYER_ID2").val() == "55") && ($("#TAXPAYER_ID3").val() == "5555")) {
1295			ssnOK = false;
1296		} else if (isNaN($("#TAXPAYER_ID1").val()) || isNaN($("#TAXPAYER_ID2").val()) | isNaN($("#TAXPAYER_ID3").val())) {
1297			ssnOK = false;
1298		}
1299		
1300		if (!ssnOK) {
1301			$("#TAXPAYER_ID-errorholder").html("Please enter a valid Social Security Number.");
1302			$("#TAXPAYER_ID1").val("");
1303			$("#TAXPAYER_ID2").val("");
1304			$("#TAXPAYER_ID3").val("");
1305		}
1306		return ssnOK;
1307
1308	} else {
1309		return true;
1310	}
1311}
1312
1313function sortByKey(array, key) {
1314    return array.sort(function(a, b) {
1315        var x = a[key]; var y = b[key];
1316        return ((x > y) ? -1 : ((x < y) ? 1 : 0));
1317    });
1318}
1319
1320////////////////////////////////// VALIDATION FUNCTIONS /////////////////////////////////////////////////////////
1321
1322function setDefultPrfixToDr(){
1323	if (($("#PERSON_TYPE_CODE").val()=="R") && ($("#PREFIX").val()=="select")) {
1324		$("#PREFIX").val("Dr.");
1325	}
1326}
1327
1328
1329function replyPersonTypes(types,foo) {
1330	dwr.util.addOptions("PERSON_TYPE_CODE", types.personTypeNames);
1331	dwr.util.setValue("PERSON_TYPE_CODE",0); // default - none selected
1332
1333	waitSpinnerOff("#PERSON_TYPE_CODE");
1334
1335	personType = "0";
1336	profUIDS = types.personTypeAltIds;
1337	if (trxUserBean != undefined)
1338		dwr.util.setValue("PERSON_TYPE_CODE",trxUserBean.person_type_code);
1339
1340	if (person_URL!="null") { // for pre-populate URL
1341		$("#PERSON_TYPE_CODE").val(person_URL);
1342		$("#PERSON_TYPE_CODE").attr('disabled','disabled');		
1343	}
1344
1345	setDefultPrfixToDr();
1346	$("#PERSON_TYPE_CODE").trigger("change");
1347}
1348
1349
1350function getUIDTYPE(prof) {
1351	if (prof != 'select') {
1352		var altIds = eval("profUIDS."+prof);
1353		var ops = new Array();
1354		dwr.util.removeAllOptions("UIDType");
1355		
1356		$.each(altIds, function(key, value) {
1357			var i = key[0];
1358			ops[i] = key;
1359		});
1360		for (i=0; i < ops.length; i++) {
1361			$('#UIDType').append($('<option>', {
1362				value: ops[i],
1363				text: altIds[ops[i]]
1364			}));
1365		}
1366
1367		personType = prof;
1368		$("#UIDType-container_control").show();
1369		uidName = $("#UIDType option:selected").text();
1370		initUIDVAL();
1371	} else {
1372		$("#UIDType-container_control").hide();
1373		$("#UIDValue-container_control").hide();
1374		$("#validateButton").hide();
1375	}
1376}
1377
1378
1379function initUIDVAL() {
1380	if ($("#UIDType option:selected").val() == undefined) return;
1381	uidName = $("#UIDType option:selected").text();
1382	uidNameCode = $("#UIDType option:selected").val();
1383	uidNameCode = uidNameCode.substr(1);
1384
1385	$("#UIDLabel").remove();
1386	showUIDError("");
1387	$("#UIDValue").val("");
1388
1389	$("#UIDValue-spanId dfn").before("<span id='UIDLabel'>"+uidName+"</span>");
1390
1391	if (uidNameCode=="ME_LNAME") $("#UIDValue").attr("maxLength",10);
1392	else if (uidNameCode=="DEA_LNAME") $("#UIDValue").attr("maxLength",9);
1393	else if (uidNameCode=="ADA_LNAME") $("#UIDValue").attr("maxLength",9);
1394	else if (uidNameCode=="AOA_LNAME") $("#UIDValue").attr("maxLength",6);
1395  	else if (uidNameCode=="REG_CODE") $("#UIDValue").attr("maxLength",9);
1396
1397
1398	$("#UIDValue").attr("data-errormessage","Please enter a value for "+uidName);
1399	$("#UIDValue").attr("tabindex","7");
1400
1401	$("#UIDValue-container_control").show();
1402
1403	if (userHasCode == 'null') {
1404		$("#validateButton").show();
1405	}
1406
1407	if (unique_identifier_URL!="null") { // for pre-populate URL
1408		if (unique_identifier_URL=="reg_code") $('#UIDType').find('option:contains("Registration Code")').attr("selected",true);
1409		else if (unique_identifier_URL=="dea_number") $('#UIDType').find('option:contains("DEA Number")').attr("selected",true);
1410		else if (unique_identifier_URL=="me_number") $('#UIDType').find('option:contains("Medical Education Number")').attr("selected",true);
1411		else if (unique_identifier_URL=="aoa_number") $('#UIDType').find('option:contains("American Optometric Association Number")').attr("selected",true);
1412		$("#UIDType").attr('disabled','disabled');		
1413
1414		if (identifier_value_URL!="null") $("#UIDValue").val(identifier_value_URL);
1415	}
1416
1417	$("#UIDValue").focus();
1418
1419}
1420
1421
1422function validateUIDVAL(moduleName) { // make sure last name and UID values are good
1423	$(".required").removeClass("required");
1424	$(".required-msg").removeClass("required-msg");
1425	
1426	var passed = true;
1427	if ($("#PERSON_TYPE_CODE").val()=="select") return false;
1428	showUIDError("");
1429
1430	// Last Name Check
1431	var lastName = $("#LAST_NAME").val().trim();
1432	$("#LAST_NAME").val(lastName);
1433	if (lastName=="") {
1434		$("#LAST_NAME-errorholder").html($("#LAST_NAME").attr("data-errormessage")).addClass("required-msg");
1435		$("#LAST_NAME").addClass("required");
1436		passed = false;
1437	}else{
1438		$("#LAST_NAME-errorholder").html("");
1439	}
1440
1441	// First Name Check
1442	var firstName = $("#FIRST_NAME").val().trim();
1443	$("#FIRST_NAME").val(firstName);
1444	if (firstName=="") {
1445		$("#FIRST_NAME-errorholder").html($("#FIRST_NAME").attr("data-errormessage")).addClass("required-msg");
1446		$("#FIRST_NAME").addClass("required");
1447		passed = false;
1448	} else {
1449		$("#FIRST_NAME-errorholder").html("");
1450	}
1451
1452	// UID Type check
1453	if ($("#UIDType").val() == "select") {
1454		$("#UIDType-errorholder").html($("#UIDType").attr("data-errormessage")).addClass("required-msg");
1455		passed = false;
1456	} else {
1457		$("#UIDType-errorholder").html("");
1458	}
1459
1460
1461	// UID Check if required
1462	if (!$("#UIDValue").is(":visible")) return true;	
1463
1464	if (($("#UIDValue").attr("data-required") == "false") && ($("#UIDValue").val().trim()=="")) return true;
1465
1466	// UID Check format		
1467	var regexDEA=/^[A-Z]{2}\d{7}$/;
1468	var uidVal = $("#UIDValue").val().toUpperCase().trim();
1469	$("#UIDValue").val(uidVal);
1470
1471	if (uidVal.length == 0) {
1472		showUIDError("Please enter a value for <br/>your "+uidName);
1473		passed = false;
1474	} else if (uidNameCode=="DEA_LNAME") {
1475		if (uidVal.length != 9) {
1476			showUIDError("Your DEA number should start with two<br/> letters followed by seven numbers<br /> (for a total length of 9).");
1477			passed = false;
1478		}
1479		else if (!regexDEA.test(uidVal)) {
1480			showUIDError("Your DEA number should start with two<br/> letters followed by seven numbers<br /> and no spaces or punctuation.");
1481			passed = false;
1482		} else { // DEA Format validation
1483			var step1 = parseInt(uidVal[2])+parseInt(uidVal[4])+parseInt(uidVal[6]);
1484			step1 += (parseInt(uidVal[3])+parseInt(uidVal[5])+parseInt(uidVal[7])) * 2;
1485			var chk = step1+"";
1486			chk = chk[chk.length-1];
1487
1488			if (parseInt(chk) != parseInt(uidVal[8])) {
1489				showUIDError("The number you have entered is not a valid DEA number.");
1490				passed = false;
1491			}
1492		}
1493	} else if (uidNameCode=="ME_LNAME") {
1494		if (!isNumberOnly(uidVal)) {
1495			showUIDError("The ME number needs to be digits only.");
1496			passed = false;
1497		} else if (uidVal.length != 10) {
1498			showUIDError("The ME number needs to be 10 digits long.");
1499			passed = false;
1500		}
1501	} else if (uidNameCode=="ADA_LNAME") {
1502		if (!isNumberOnly(uidVal)) {
1503			showUIDError("The ADA number needs to be digits only.");
1504			passed = false;
1505		} else if (uidVal.length != 9) {
1506			passed = false;
1507			showUIDError("The ADA number needs to be 9 digits long.");
1508		}
1509	} else if (uidNameCode=="AOA_LNAME") {
1510		if (!isNumberOnly(uidVal)) {
1511			showUIDError("The AOA number needs to be digits only.");
1512			passed = false;
1513		} else if (uidVal.length != 6) {
1514			showUIDError("The AOA number needs to be 6 digits long.");
1515			passed = false;
1516
1517		}
1518	}
1519
1520	if (!passed) return false;
1521
1522	if (userHasCode == 'null') {
1523		console.log("Validating: uidType=" + uidType + ", uidVal=" + uidVal)
1524
1525		var uidType = $("#UIDType option:selected").val();
1526		// UID Check database match
1527		$("#valLoading").modal("show");
1528		if (uidNameCode == "REG_CODE") {
1529			console.log("checkAltIDRegcode: " + uidVal);
1530			RegistrationDAO.checkAltIDRegcode(uidType, uidVal, $("#LAST_NAME").val(), $("#FIRST_NAME").val(), $("#PERSON_TYPE_CODE").val(), moduleName, replyCheckUID);
1531		} else if (uidNameCode == "INV_CODE") {
1532			console.log("checkInvitationCode: " + uidVal);
1533			RegistrationDAO.checkInvitationCode("INV_CODE", uidVal, moduleName, function (trxUser) {
1534				$("#LAST_NAME").val(trxUser.last_name);
1535				$("#FIRST_NAME").val(trxUser.first_name);
1536				$("#PERSON_TYPE_CODE").val(trxUser.person_type_code);
1537				$("#PREFIX").val(trxUser.prefix);
1538				replyCheckUID(trxUser.targetrx_id);
1539			});
1540		} else {
1541			console.log("checkAltID: " + uidVal);
1542			RegistrationDAO.checkAltID($("#UIDType option:selected").val(), $("#PERSON_TYPE_CODE").val(), uidVal, $("#LAST_NAME").val(), moduleName, replyCheckUID);
1543		}
1544	} else {
1545		console.log("validateUIDVAL userHasCode");
1546		return true;
1547	}
1548}
1549
1550
1551function replyCheckUID(trxid) {
1552	var suffixMsg = "";
1553	var suffixMsg1 = "<br/>Please try again or contact<br/> <a href='"+custServiceURL+"'>Customer Service</a> for help.";
1554	var suffixMsg2 = "<br/>Please try again or select another unique identifier.";
1555	var forgotLink = '<br/><span style="font-size:14px;color:black;">Forgot Your Login? <a href="'+siteURLBase+'?help=1">Click here.</a></span>';
1556
1557	console.log("replyCheckUID: " + trxid)
1558	showUIDError("");
1559	trxUserTmp = null;
1560	
1561	var uidSize = $("#UIDType option").length;
1562	if (uidSize==1)
1563		suffixMsg = suffixMsg1;
1564	else
1565		suffixMsg = suffixMsg2;
1566
1567	//var hlink = $("#UIDType option:selected").val() + "_" + $("#UIDValue").val();
1568
1569	if (isNaN(trxid)==false) { // checkAltID called - we got a number back (0,-1,-2, or trxid). 
1570		if (trxid > 0) { // All OK - we found user match
1571			console.log("Found user: " + trxid);								
1572			RegistrationDAO.getUserVerified(trxid, $("#PERSON_TYPE_CODE").val(), uidNameCode, true, replyGetUser);
1573		} else if (trxid == -1) { // already reg
1574			showUIDError("Our records indicate that<br/> you are already registered.<br/>" + forgotLink);
1575		} else if (trxid == -2) { // found two users
1576			showUIDError("We are having trouble verifying the number provided.<br/><br/> Please contact <a href='"+custServiceURL+"'>Customer Service</a> for help.");
1577		} else if (trxid==0) { // can't find them at all
1578			if(uidNameCode=="DEA_LNAME")
1579				showUIDError("This DEA number and last name do not match our records." + suffixMsg);
1580			else if(uidNameCode=="ME_LNAME")
1581				showUIDError("This ME number and last name do not match our records." + suffixMsg);
1582			else if(uidNameCode=="ADA_LNAME")
1583				showUIDError("This ADA number and last name do not match our records." + suffixMsg);
1584			else if(uidNameCode=="AOA_LNAME")
1585				showUIDError("This AOA number and last name do not match our records." + suffixMsg);
1586			else
1587				showUIDError("We could not verify this information." + suffixMsg);
1588		}
1589	} else { // checkAltIDRegcode called - we get (0,INVALID,EXPIRED,FULL, or trxid) back. 0 and trxid handled above.
1590		console.log("Found user exception: " + trxid);
1591		if (trxid=="FULL") { // already registered
1592			showUIDError("This registration code has been used too many times.<br/> Please contact <a href='"+custServiceURL+"'>Customer Service</a> for help.");
1593		} else if (trxid=="INVALID") { // already registered
1594			showUIDError("This registration code is invalid<br/> or no longer active." + suffixMsg);
1595		} else if (trxid=="EXPIRED") { // code expired
1596			showUIDError("This registration code has expired.<br/> Please contact <a href='"+custServiceURL+"'>Customer Service</a> for help.");
1597		} else if (trxid=="REGISTERED") { // already registered
1598			showUIDError("Our records indicate that<br/> you are already registered.<br/>" + forgotLink);
1599		} else if (trxid=="PARTREG") { // partly registered
1600			showUIDError("Our records indicate that<br/> you started registration.<br/>" + forgotLink);
1601		}
1602	}
1603}
1604
1605function showUIDError(msg) {
1606	$("#UIDValue-errorholder").html(msg);
1607	if ((msg != "") && (userHasCode == "null")) {
1608		$("#UIDValue-errorholder").addClass("required-msg");
1609		$("#UIDValue").addClass("required");
1610		$("#valLoading").modal("hide");
1611	}
1612}
1613
1614
1615function enterMobileNum(trxUser) {
1616	trxUserTmp = trxUser;
1617	
1618	$("#enterCode").hide();
1619	$("#sendCodeBut").show();
1620	$("#enterNum").show();
1621	$("#verContBut").hide();
1622	$("#trxid").val(trxUser.targetrx_id);
1623	$("#MOBILE_STATUS_MSG").html("").hide();
1624	$("#mobileNum").val("");
1625	$("#smscode").val("");
1626
1627	if (getMobileDevice.any()) {
1628		$("#verification_sms").popup("open", "");
1629		$("#mobileNum").mask("(999) 999-9999");
1630		$("#mobileNum").focus();
1631	} else {
1632		$("#mobileNum").mask("(999) 999-9999");
1633		$("#smscode").mask("999999");
1634		$("#valLoading").modal("hide");
1635		$("#verification_sms").modal("show");	
1636		$("#mobileNum").focus();
1637	}	
1638}
1639
1640
1641function sendSMSVerification() {
1642	var mobileNum = $("#mobileNum").val().trim();
1643	mobileNum = mobileNum.replace(/\D/g,'');
1644	var trxid = $("#trxid").val();
1645	var lastName = $("#LAST_NAME").val();
1646	$("#MOBILE_STATUS_MSG").html("").hide();
1647	
1648	if (lastName == null) { // for Smart Login
1649		lastName = trxUserBean.last_name;
1650		trxid = trxUserBean.targetrx_id;
1651	}
1652	
1653	
1654	if (mobileNum.length == 10) {		
1655		$("#sendCodeBut").hide();
1656
1657		RegistrationDAO.verifyMobileSendRest(mobileNum, trxid, lastName, panelSite, function (retStatus) {
1658			console.log("sendSMSVerification="+retStatus);
1659			if (testMode) retStatus = "pending";	
1660
1661			if (retStatus=="pending") {
1662				trxUserTmp.mobile_phone_num = mobileNum;
1663				$("#verContBut").show();
1664				$("#enterCode").show();
1665				$("#enterNum").hide();
1666				$("#smscode").focus();
1667			} else if (retStatus=="notmobile") {
1668				$("#MOBILE_STATUS_MSG").html("Invalid mobile phone number.").show();
1669				$("#sendCodeBut").show();
1670			} else if (retStatus=="notunique") {
1671				$("#MOBILE_STATUS_MSG").html("This number is already registered.").show();
1672				$("#sendCodeBut").show();
1673			} else if (retStatus=="used") {
1674				$("#MOBILE_STATUS_MSG").html("This number is already registered.").show();
1675				$("#sendCodeBut").show();
1676			} else if (retStatus=="toomanysends") {
1677				$("#MOBILE_STATUS_MSG").html("This number has been used too many times. Please contact support.").show();
1678				$("#sendCodeBut").show();
1679			} else {
1680				$("#MOBILE_STATUS_MSG").html("There was a problem sending your co
1680de. Please contact support.").show();
1681				$("#sendCodeBut").show();
1682			}
1683
1684		});
1685	} else {
1686		$("#MOBILE_STATUS_MSG").html("Invalid phone number.").show();
1687	}
1688
1689}
1690
1691
1692function verifySMSVerification() {
1693	var mobileNum = $("#mobileNum").val().trim();
1694	mobileNum = mobileNum.replace(/\D/g,'');
1695	var smscode = $("#smscode").val().trim();
1696	var trxid = $("#trxid").val();
1697	var currentLocation = window.location.pathname;
1698	
1699	if (getMobileDevice.any()) {
1700		$("#valLoading").popup("open", "");
1701	} else {	
1702		$("#valLoading").modal("show");
1703	}
1704
1705	RegistrationDAO.verifyMobileCheckRest(mobileNum, smscode, trxid, panelSite, function (retStatus) {
1706		if (getMobileDevice.any()) {
1707			$("#valLoading").popup("close");
1708		} else {	
1709			$("#valLoading").modal("hide");
1710		}
1711
1712		console.log(retStatus);
1713		if (testMode) retStatus = "approved";	
1714
1715		if (retStatus == "approved") {
1716			if (getMobileDevice.any()) {
1717				$("#verification_sms").popup("close");
1718			} else {	
1719				$("#verification_sms").modal("hide");	
1720			}
1721						
1722			if (currentLocation == "/SmartLogin") {
1723				collectAndSetValues();
1724			} else {
1725				setNewUser(trxUserTmp); // invite code
1726			}
1727		} else if (retStatus == "toomanytries") {
1728			$("#MOBILE_STATUS_MSG").html("You have exceeded the number of code attempts.").show();
1729		} else if (retStatus=="notFound") {
1730			$("#MOBILE_STATUS_MSG").html("This code has expired.").show();
1731		} else {
1732			$("#MOBILE_STATUS_MSG").html("Incorrect code.").show();
1733		}
1734	});
1735	
1736}
1737
1738
1739function replyGetUser(trxUser) {
1740	// EDC user on NON-EDC site
1741	if ((userSite=="WEB") && (trxUser.edc_status_code=="TARGET")) { // EDC user on non-EDC site
1742		console.log("replyGetUser: Site is WEB Going to checkInvitationCode - EDC Overview");
1743		RegistrationDAO.checkInvitationCode("INV_CODE", trxUser.saleslogix_username, "REGISTRATION", function (trxUserEDC) {
1744			$(location).attr('href', "/IRXPhysPortal/EDCOverview?invcode="+trxUserEDC.saleslogix_username);
1745			return;
1746		});
1747	}	
1748	// RegCode used or NON-EDC user on EDC site - flip them over to NON-EDC
1749	else if ((userSite=="EDC") && ((uidNameCode=="REG_CODE") || (trxUser.edc_status_code=="NONE"))) {
1750		console.log("replyGetUser: Going to WEB Verification");
1751		$(location).attr('href', "/IRXPhysPortalWeb/Registration/Verification?validated=WEB&flip=WEB" + getQueryString(trxUser));
1752		return;
1753	}
1754	// EDC user
1755	else if ((userSite=="EDC") && (trxUser.edc_status_code=="TARGET")) { 
1756		console.log("replyGetUser: Site is EDC - Going to checkInvitationCode - EDC Verification");
1757		RegistrationDAO.checkInvitationCode("INV_CODE", trxUser.saleslogix_username, "REGISTRATION", function (trxUser) {
1758			var qs = "";
1759			qs += "invcode=" + trxUser.saleslogix_username;
1760			qs += "&uid=" + $("#UIDType").val().substr(1);
1761			qs += "&uidval="+$("#UIDValue").val();
1762
1763			$(location).attr('href', "/IRXPhysPortal/EDCOverview?" + qs);
1764			return;
1765		});
1766	}
1767	// Regular Web User
1768	else if ((panelSite=="AS") || (panelSite=="MIN")) {
1769		console.log("replyGetUser: Going to " + panelSite + " Verification");
1770		targetrx_id = trxUser.targetrx_id;
1771		
1772		trxUserBean = trxUser;
1773		trxUserBean.prefix = $("#PREFIX").val();
1774		trxUserBean.first_name = $("#FIRST_NAME").val();
1775		trxUserBean.last_name = $("#LAST_NAME").val();
1776		trxUserBean.middle_initial = $("#MIDDLE_INITIAL").val();			
1777		trxUserBean.person_type_code = $("#PERSON_TYPE_CODE").val();
1778		console.log(trxUserBean);
1779		RegistrationDAO.setPartialRegUser(trxUserBean, function() { // will not write to database yet
1780			if (panelSite == "AS") {
1781				var qs = "";
1782				qs += "&uid=" + $("#UIDType").val().substr(1);
1783				qs += "&uidval="+$("#UIDValue").val();
1784				$(location).attr('href', "/ASPhysPortal/Registration/Verification?validated=WEB" + qs);
1785			} else {
1786				$(location).attr('href', "/IRXPhysPortalWeb/Registration/Verification?validated=WEB&flip=WEB" + getQueryString(trxUser));
1787			}
1788			return;		
1789		});
1790		
1791	}
1792}
1793
1794
1795function getQueryString(trxUser) {
1796	var qs = "";
1797	qs += "&trxid=" + trxUser.targetrx_id;
1798	qs += "&prefix=" + $("#PREFIX").val();
1799	qs += "&first_name=" + $("#FIRST_NAME").val();
1800	qs += "&last_name=" + $("#LAST_NAME").val();
1801	qs += "&middle_initial=" + $("#MIDDLE_INITIAL").val();
1802	qs += "&person_type_code="+$("#PERSON_TYPE_CODE").val();
1803	qs += "&uid=" + $("#UIDType").val().substr(1);
1804	qs += "&uidval="+$("#UIDValue").val();
1805	qs += "&pid="+trxUser.panel_id;
1806	qs += "&tos=" + trxUser.terms_of_service_flag;
1807	qs += "&regStatus=" + trxUser.registration_status_code;
1808	qs += "&mobile=" + trxUser.mobile_phone_num;
1809	return qs;
1810}
1811
1812
1813// WEB User Specialties handler
1814function replyPopSpecialties(specialties) {
1815	dwr.util.removeAllOptions("PRIMARY");
1816	dwr.util.removeAllOptions("SECONDARY");
1817
1818	dwr.util.addOptions("PRIMARY", {"select":PLS_SELECT});
1819	dwr.util.addOptions("SECONDARY", {"select":PLS_SELECT});
1820
1821	for(var prop in specialties) {
1822		$('#PRIMARY').append($('<option>', { value : specialties[prop] }).text(prop));  
1823		$('#SECONDARY').append($('<option>', { value : specialties[prop] }).text(prop));  
1824	}
1825
1826	// Primary group
1827	RegistrationDAO.getSpecialtyGroupCodeFromSpec(trxUserBean.primary_spec_code, function(groupCode) {
1828		$("#PRIMARY").val(groupCode);
1829		getSpecialtiesFromGroup('PRIMARY');
1830	});
1831
1832	// Secondary group
1833	if (trxUserBean.secondary_spec_code != null) {
1834		RegistrationDAO.getSpecialtyGroupCodeFromSpec(trxUserBean.secondary_spec_code, function(groupCode) {
1835			$("#SECONDARY").val(groupCode);
1836			getSpecialtiesFromGroup('SECONDARY');
1837		});
1838	}
1839}
1840
1841
1842
1843function makeSpecialtyGridTableEDC(divId, listItems, hasNone) {
1844	for(var key in listItems) { 
1845		$(divId+' > tbody:last').append("<tr>"); 
1846		$(divId+' > tbody:last').append("<td>"+key+"</td>"); 
1847        $(divId+' > tbody:last').append("<td><input type='radio' name='primaryEDCSel' value='"+listItems[key]+"' /></td>");
1848        $(divId+' > tbody:last').append("<td><input type='radio' name='secondaryEDCSel' value='"+listItems[key]+"' /></td>");
1849        $(divId+' > tbody:last').append("<td><input type='checkbox' name='BOARD_EDC' value='BOARD_"+listItems[key]+"' /></td>");
1850        $(divId+' > tbody:last').append("<td><input type='checkbox' name='AFFIL_EDC' value='AFFIL_"+listItems[key]+"' /></td>");
1851		$(divId+' > tbody:last').append("</tr>"); 
1852	}
1853
1854	$(divId + ' > tbody:last').append("<tr><td>None of these</td>" +
1855		"<td><input id='noprime' type='radio' name='primaryEDCSel' value='noprime' /></td>" +
1856		"<td><input type='radio' name='secondaryEDCSel' value='nosecond' /></td>" +
1857		"<td></td><td></td></tr>"); 
1858}
1859
1860	function makeSpecialtyGridTableWeb(groupId, listItems, hasNone) {
1861	var divId = "#"+groupId+"-container_control";
1862	var tableId =  groupId+"_table";
1863	var header, nameId = "";
1864	if (groupId=="PRIMARY") {
1865		header = "Primary Specialty"; 
1866		nameId = "PRIMARY_SPEC";
1867	} else {
1868		header = "Secondary Specialty";
1869		nameId = "SECONDARY_SPEC";
1870	}
1871
1872	var myTable = "" ; 
1873	myTable += "<table id='"+tableId+"' style='width:400px; font-size: 8pt;'>"; 
1874	myTable +=  "<thead>" ; 
1875	myTable +=   "<tr>"; 
1876    myTable +=    "<th colspan='2' style='width: 200px;'>"+header+"</th> <th align='center' style='width: 50px;'>Board Certified</th> <th align='center' style='width: 50px;'>Board Affiliated</th>"; 
1877	myTable +=   "</tr>" ; 
1878	myTable +=  "</thead>" ; 
1879	myTable +=  "<tbody>" ; 
1880
1881	for(var key in listItems) { 
1882		myTable += "<tr>"; 
1883
1884		myTable += "<td>"+key+"</td>"; 
1885        myTable += "<td><input type='radio' name='"+nameId+"_SEL' value='"+listItems[key]+"' /></td>";
1886
1887		// only render checkboxs if pri != secondary for secondary list
1888		if ((groupId=="PRIMARY") || ($("[name=PRIMARY]").val() != $("[name=SECONDARY]").val())) {
1889	        //myTable += "<td><input type='checkbox' value='"+"BOARD_"+listItems[key]+"' name='"+nameId+"_CERT' /></td>";
1890    	    //myTable += "<td><input type='checkbox' value='"+"AFFIL_"+listItems[key]+"' name='"+nameId+"_AFFIL' /></td>";
1891	        myTable += "<td><input type='checkbox' value='"+"BOARD_"+listItems[key]+"' name='BOARD' /></td>";
1892    	    myTable += "<td><input type='checkbox' value='"+"AFFIL_"+listItems[key]+"' name='AFFIL' /></td>";
1893		}
1894
1895		myTable += "</tr>"; 
1896	}
1897
1898	myTable += "<tr><td colspan='3'><div id='PRIMARY_Error' class='regErrorMsg'></div></td></tr>"; 
1899
1900	myTable += "</tbody>"; 
1901	myTable += "</table>";
1902
1903	$(divId).append(myTable);
1904	$("#"+tableId).hide();		    	  
1905}
1906
1907
1908function getSpecialtiesFromGroup(groupId) {
1909	var idval = $("#"+groupId).val();
1910	$("#"+groupId+"_table").remove();
1911
1912
1913	$("#PRIMARY-errorholder").html('');
1914	$("#SECONDARY-errorholder").html('');
1915	$("#PRIMARY_Error").html('');		    	  
1916
1917	RegistrationDAO.getSpecialtiesFromGroup(idval, function (items) {
1918		makeSpecialtyGridTableWeb(groupId, items, true);
1919		if (trxUserBean.primary_spec_code != null)
1920			$("input[name='PRIMARY_SPEC_SEL'][value='"+trxUserBean.primary_spec_code+"']").attr("checked",true);
1921		if ($("#PRIMARY").val() != "select")
1922			$("#PRIMARY_table").show();		    	  
1923
1924		if (trxUserBean.secondary_spec_code != null)
1925			$("input[name='SECONDARY_SPEC_SEL'][value='"+trxUserBean.secondary_spec_code+"']").attr("checked",true);
1926
1927		if ($("#SECONDARY").val() != "select")
1928			$("#SECONDARY_table").show();		    	  
1929
1930		// Board/Affil check box population
1931		RegistrationDAO.getUserSpecialties(trxUserBean.targetrx_id, function(specsArray) {
1932			for (var spec in specsArray) {
1933				var id = spec;
1934				$(":checkbox[value="+id+"]").attr("checked",true);
1935			}
1936		});
1937	});
1938}
1939
1940
1941function initializeIframe() {		
1942	var panelsDiag = ["5", "30", "25", "36", "33", "45", "11", "26", "10", "27", "13"];
1943	var term_period_months = DEFAULT_TERM_PERIOD;
1944	if ((trxUserBean.contract.term_period_months != null) && (trxUserBean.contract.term_period_months != 0))
1945		term_period_months = trxUserBean.contract.term_period_months;
1946	
1947	var $currentIFrame = $('#htmlcontractiframeid');
1948	
1949	$currentIFrame.contents().find('.username').html(trxUserBean.saleslogix_username);
1950	$currentIFrame.contents().find('.doctorname').html(trxUserBean.first_name+" "+trxUserBean.last_name);
1951	$currentIFrame.contents().find('.honorarium').html("$"+trxUserBean.contract.incentive.amount);
1952	$currentIFrame.contents().find('.timeperiod').html(term_period_months);
1953	
1954	if (trxUserBean.contract.incentive.num_collection_days != 0) {
1955		var daysLabel = (trxUserBean.contract.num_collection_days > 1) ? " days per week" : " day per week";
1956
1957		$currentIFrame.contents().find('.collectiondays').html(trxUserBean.contract.incentive.num_collection_days + " " + daysLabel);
1958		if (panelsDiag.includes(trxUserBean.panel_id)) {
1959			$currentIFrame.contents().find('#optB').show();
1960			$currentIFrame.contents().find('#option2').show();
1961		} else { 
1962			$currentIFrame.contents().find('#optA').show();
1963			$currentIFrame.contents().find('#option1').show();
1964		}
1965	}
1966	else if (trxUserBean.contract.incentive.num_rx != 0) {
1967		$currentIFrame.contents().find('.numrx').html(trxUserBean.contract.incentive.num_rx);
1968		if (panelsDiag.includes(trxUserBean.panel_id)) {
1969			$currentIFrame.contents().find('#optD').show();
1970			$currentIFrame.contents().find('#option4').show();
1971		} else { 
1972			$currentIFrame.contents().find('#optC').show();
1973			$currentIFrame.contents().find('#option3').show();
1974		}
1975	}
1976	
1977	if (trxUserBean.contract.incentive.num_details != 0) {
1978		$currentIFrame.contents().find('.numdetails').html(trxUserBean.contract.num_details);
1979		$currentIFrame.contents().find('#optF').show();
1980		$currentIFrame.contents().find('#option5').show();
1981	} else if (trxUserBean.contract.incentive.promo_flag == true){
1982		$currentIFrame.contents().find('#optE').show();
1983		$currentIFrame.contents().find('#option5').show();
1984	}
1985	
1986	if (panelsDiag.includes(trxUserBean.panel_id)) {
1987		$currentIFrame.contents().find('#idcCodesSection').show();
1988		$currentIFrame.contents().find('.'+trxUserBean.panel_id).show();
1989	}
1990}
1991
1992function dialysisChairsChange() {
1993	if ($("#DIALYSIS_SUITE-container_control").length) {
1994		$("#NUM_DIALYSIS_CHAIRS-container_control").hide();
1995		$('input[type=radio][name=DIALYSIS_SUITE]').change(function() {
1996			if (this.value=="Y") 
1997				$("#NUM_DIALYSIS_CHAIRS-container_control").show();
1998			else
1999				$("#NUM_DIALYSIS_CHAIRS-container_control").hide();
2000		});
2001	}
2002}
2003
2004
2005
2006function useLoadingMessage(message) {
2007	$("#regLoadingMsg").html(message);
2008	$("#regLoading").modal("show");
2009}
2010
2011function hideLoadingMessage() {
2012	setTimeout(function(){ $("#regLoading").modal("hide"); }, 500);
2013}
2014
2015
2016function getUrlVars() {
2017	var vars = {};
2018	var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
2019		vars[key] = value;
2020	});
2021	return vars;
2022}
2023
2024function handelMenuItemOnRegistrationPage(currentFrom){
2025	console.log("handelMenuItemOnRegistrationPage: "+currentFrom);
2026	if ((regStatus != "FULL") || (isEDCTarget=="true")) {
2027		var noOfRegdFormActive = 0;
2028		var maxNoOfRegdFormActiveFromUrl= 1;
2029		var temp = getUrlVars()["maxNoOfRegdFormActiveFromUrl"];
2030		if(temp!=null)
2031			maxNoOfRegdFormActiveFromUrl= parseInt(temp);
2032
2033		var tempStatus=false;
2034		$.each(mapForAllRegistrationPages, function(key, value) {
2035			mapForAllRegistrationPages[key]=true;
2036			noOfRegdFormActive++;
2037
2038			if(key==currentFrom )
2039				tempStatus=true;
2040			if(tempStatus && maxNoOfRegdFormActiveFromUrl <= noOfRegdFormActive)
2041				return false;
2042		});
2043
2044		if (maxNoOfRegdFormActiveFromUrl < noOfRegdFormActive)
2045			maxNoOfRegdFormActiveFromUrl=noOfRegdFormActive;
2046
2047		$.each(mapForAllRegistrationPages, function(key, value) {
2048			var contorlid="#"+key+"_menuItemId";
2049			var href=$(contorlid).attr('href');
2050			var itemDiv = "#"+key+"_menuItemDiv";
2051
2052			if (!value || (key==currentFrom)){
2053				if ((currentFrom=="VERIFICATION") && (key!="VERIFICATION")) {
2054					$(itemDiv).hide();
2055				}
2056				var temp = $(contorlid).html();
2057				var temp2 = $(contorlid).parent();
2058				$(contorlid).remove();
2059				temp2.append("<div>"+temp+"</div>");
2060			} else {
2061				href=href+"?maxNoOfRegdFormActiveFromUrl="+maxNoOfRegdFormActiveFromUrl;
2062				$(contorlid).attr("href", href);
2063				$(contorlid).click(function(event){
2064					event.preventDefault();
2065					return persistUser(href, true);
2066				});
2067			}
2068		});
2069	} else { // edit profile
2070		$.each(mapForAllRegistrationPages, function(key, value) {
2071			var contorlid="#"+key+"_menuItemId";
2072			var href=$(contorlid).attr('href');
2073			if (key==currentFrom) $(contorlid).parent().html($(contorlid).html());
2074
2075			$(contorlid).click(function(event){
2076				event.preventDefault();
2077				return persistUser(href, true);
2078		   });
2079		});
2080	}
2081}
2082
2083
2084function showRegMenu() {
2085	$.each(mapForAllRegistrationPages, function(key, value) {
2086		$("#"+key+"_menuItemDiv").show();
2087	});
2088}
2089
2090function initContractAmendIncentives(amendId, contractAmendment) {
2091	$('#PREFERRED_COLLECTION_METHOD_ID').html("");
2092	RegistrationDAO.getAmendmentOffers(amendId, contractAmendment.new_panel_id, contractAmendment.num_collection_days, function (offers) {
2093		for(var key in offers) {
2094			var oparts = offers[key].split("~");
2095			$('#PREFERRED_COLLECTION_METHOD_ID').append($("<option></option>").val(key+"-"+oparts[1]).text(oparts[0]));
2096		}	
2097		// sort
2098		$("#PREFERRED_COLLECTION_METHOD_ID").append($("#PREFERRED_COLLECTION_METHOD_ID option").remove().sort(function(a, b) {
2099			var at = $(a).text(), bt = $(b).text();
2100			return (at < bt)?1:((at > bt)?-1:0);
2101		}));
2102		$('#PREFERRED_COLLECTION_METHOD_ID').prepend($("<option></option>").attr("value","select").text("Please Select"));
2103		$('#PREFERRED_COLLECTION_METHOD_ID').val("select");
2104
2105		// if editing
2106		if (contractAmendment.status_code=="PENDING") {
2107			var currSel = contractAmendment.amendment_offer_id + "-" + contractAmendment.collection_device_id + "-" + contractAmendment.collection_method_id;
2108			$("#PREFERRED_COLLECTION_METHOD_ID").val(currSel);
2109		}
2110	});
2111
2112}
2113
2114
2115function populateSurveyResponses(answers) {
2116	if (answers) {
2117		for(var key in answers) {
2118			//var keyName = key.replace(/_OTH$/,'-otherfield');
2119			var keyName = key;
2120			if (keyName=="searchTerm") 	continue;
2121			if (keyName=="DentistSearchTerm") 	continue;
2122
2123			var id = "#" + keyName;
2124			if ($(id).length==0) {
2125				id = "input[name='"+ keyName+"']";
2126				if ($(id).length==0) id = "";
2127			}
2128
2129			if (id!="") {
2130				if ($(id).attr("type")=="radio") {
2131					id = id+"[value='"+answers[key]+"']";
2132					$(id).attr("checked",true);
2133					$(id).click();
2134				} else if ($(id).attr("type")=="checkbox") {
2135					if (answers[key]!=null)
2136						$(id).attr("checked",true);
2137				} else {
2138					$(id).val(answers[key]);
2139					$(id).change();
2140					$(id).blur();
2141				}
2142			}
2143		}
2144	} else {
2145		alert(SYSERRORMSG);
2146	}
2147
2148	if ($("#PRACTICE_FORM").length){
2149
2150		$('input:checkbox[name=TYPE_VIS_SALES_REPS]').each(function (index) {
2151			var value = $(this).val();
2152
2153			if ((value==NO_REPS) && $(this).is(':checked')) {
2154				$("#WEEKLY_VIS_SALES_REPS").val("0");
2155				$("#WEEKLY_VIS_SALES_REPS").attr('disabled','disabled');				
2156			}
2157		});
2158
2159	}
2160
2161	if ((trxUserBean.person_type_code == "PHARM") && ($("#PROFESSIONAL_WEB_FORM").length)) {
2162	  pri_pharm = answers['PRIMARY_PHARMACY'];
2163	  sec_pharm = answers['SECONDARY_PHARMACY'];
2164	}
2165	//$("#next").show();
2166}
2167
2168function updateContract(contractAmendment) {
2169	RegistrationDAO.insertContractAmendment(contractAmendment, function (ret) {
2170		if (ret) 
2171			alert("Contract Amendment Created");
2172		else
2173			alert("There was a problem creating the amendment contract.");
2174
2175		window.location = "/IRXPhysPortal/Registration/Contract.html";
2176	});
2177}
2178
2179
2180function addInputsToResponses() {
2181	var answerArray = new Array();
2182	$(":input").each(function() {
2183		if ($(this).is(":visible") && ($(this).attr('name') != undefined)) {
2184			var value = $(this).val();
2185			var name;
2186
2187			if ( $(this).is(':radio') && $(this).is(':checked') ) {
2188				name = $(this).attr('name').replace(/-/g,'_');
2189			} else if ($(this).is(':checkbox')) {
2190				name = $(this).attr('id').replace(/-/g,'_');
2191				if (! $(this).is(':checked')) value = "";
2192			} else if (!$(this).is(':radio')) {
2193				name = $(this).attr('id').replace(/-/g,'_');
2194			}
2195
2196			if (name) {
2197				srd = new RegSurveyResponseData();
2198				srd.entity_short_name = name;
2199				srd.response_value_string = value;
2200				answerArray.push(srd);
2201			}
2202		}
2203	});
2204
2205	return answerArray;
2206}
2207
2208
2209function validatePage() {
2210	var validationOK = true;
2211	var formOK = true;
2212	var elementsOK = true;
2213
2214	if (invalidPageElements.length>0) {
2215		$(invalidPageElements[0]).focus();
2216		elementsOK = false;
2217		invalidPageElements = new Array();
2218	}
2219
2220	formOK = validateForm();
2221	
2222	if ($("#UIDType").is(":visible")) {
2223		validationOK = validateUIDVAL("REGISTRATION");
2224		}
2225
2226	if ($("#TAXPAYER_ID1").is(":visible")) {
2227		validationOK = validateTaxInfo();
2228		}
2229
2230		
2231	return (elementsOK && validationOK && formOK); // if true will submit this page
2232}
2233
2234
2235function getAddressData(addressData){
2236	if(addressData.city!=null){
2237		$(tempCity).val(addressData.city);
2238	} else {
2239		$(tempCity).val("");
2240		$(tempState).val("");
2241		$(tempZip).val("");
2242		$(tempZip+"-errorholder").html("Zip/Postal Code not found.");
2243	}
2244
2245	if(addressData.state!=null){
2246		$(tempState).val(addressData.state);
2247	} else {
2248		$(tempCity).val("");
2249		$(tempState).val("");
2250		$(tempZip).val("");
2251		$(tempZip+"-errorholder").html("Zip/Postal Code not found.");
2252	}
2253
2254	$(tempCity+"-container_control").show();
2255	$(tempState+"-container_control").show();
2256}
2257
2258
2259function dispDiv(controlName, divId) {
2260	if ($('#'+controlName).is(':checked')) {
2261		$("#"+divId).show(); 
2262	} else { 
2263		$("#"+divId).hide();
2264
2265		if (controlName=='isSecondrayAndMailingAddress_1') {
2266			$("#SECONDARY_ADDRESS_LINE_1").val("");
2267			$("#SECONDARY_ADDRESS_LINE_2").val("");
2268			$("#SECONDARY_CITY_NAME").val("");
2269			$("#SECONDARY_POSTAL_CODE").val("");
2270			$("#SECONDARY_STATE_CODE").val("select");
2271		} 
2272
2273		if(controlName=='isSecondrayAndMailingAddress_2') {
2274			$("#MAIL_ADDRESS_LINE_1").val("");
2275			$("#MAIL_ADDRESS_LINE_2").val("");
2276			$("#MAIL_CITY_NAME").val("");
2277			$("#MAIL_POSTAL_CODE").val("");
2278			$("#MAIL_STATE_CODE").val("select");
2279			$("#MAIL_LOCATION_TYPE_CODE").val("HOME");
2280		} 
2281	}
2282}
2283
2284
2285
2286function initPreferredIncentive() {
2287	// Bounce Pilot
2288	window._bopiq = window._bopiq || [];
2289	window._bopiq.push(['pageView', window.top.location.href]);
2290	console.log("BP: pageView incentive: " + window.top.location.href);
2291
2292	if($("#PREFERRED_COLLECTION_METHOD_ID").length){
2293		//$('#PREFERRED_NUM_COLLECTION_DAYS-container_control').hide();
2294		$("#PREFERRED_NUM_COLLECTION_DAYS").remove();
2295		$('br', '#PREFERRED_NUM_COLLECTION_DAYS-container_control').remove();
2296		waitSpinnerOn("#PREFERRED_COLLECTION_METHOD_ID", LOADING);
2297		$("#nextBtn").hide();
2298
2299		var inctvArray = [];
2300
2301		//If 1st time user then retrive the value by panel_id
2302		RegistrationDAO.getIncentive(targetrx_id, panel_id, function (preferredIncentives) {
2303			preferredIncentives = sortByKey(preferredIncentives, "COLLECTION_METHOD_DESC");
2304			//console.log(preferredIncentives);
2305			// build multi array of incentives for each device
2306			$.each(preferredIncentives, function(id, incentive) {
2307				if ($.inArray(incentive.collection_method_id, inctvArray) == -1) 
2308					$('#PREFERRED_COLLECTION_METHOD_ID').append($("<option></option>").attr("value",incentive.collection_method_id).text(incentive.collection_device_desc));
2309				inctvArray.push(incentive.collection_method_id);
2310				
2311				if (iDaysArray[incentive.collection_method_id]==undefined) {
2312					iDaysArray[incentive.collection_method_id] = new Array();
2313					iDaysArray[incentive.collection_method_id].push(incentive);
2314				} else {
2315					iDaysArray[incentive.collection_method_id].push(incentive);
2316				}
2317			});         	    
2318
2319			if ((trxUserBean.contract.collection_method_id != null) && (trxUserBean.contract.collection_method_id != 0)) { // have contract data for this user
2320				$("#PREFERRED_COLLECTION_METHOD_ID").val(trxUserBean.contract.collection_method_id);
2321				$("#PREFERRED_COLLECTION_METHOD_ID").change();
2322				$("#irid"+trxUserBean.contract.incentive_requirement_id).attr("checked",true);
2323				$("[id^=PREFERRED_COLLECTION_METHOD_COLOR]").val(trxUserBean.regSurveyDataList.DEVICE_COLOR);
2324				$("#PREFERRED_COLLECTION_METHOD_ID-container_control").change();
2325				
2326			}
2327
2328			waitSpinnerOff("#PREFERRED_COLLECTION_METHOD_ID");
2329			if (getMobileDevice.any()) $('#PREFERRED_COLLECTION_METHOD_ID').selectmenu("refresh");							
2330
2331			$("#nextBtn").show();
2332		});
2333
2334		var daysOpt;
2335		var daysLabel;
2336		
2337		$("#PREFERRED_COLLECTION_METHOD_ID").change(function() { // on device select
2338			getCollectionOptions();
2339		});
2340		
2341		$("#PREFERRED_COLLECTION_METHOD_ID-container_control").change(function() { // change handler
2342			$("#contButSec").hide();
2343			if ($("#PREFERRED_NUM_COLLECTION_DAYS_SEC").is(':visible')) {
2344				trxUserBean.contract.incentive.collection_method_id = $("#PREFERRED_COLLECTION_METHOD_ID").val();
2345				if ($("#contractLite").is(':visible') && (! $("#oneReq").is(':visible'))) {
2346					$("#contractLite").hide();
2347					$("#contractButtonDivId").hide();
2348				}
2349			} else {								
2350				if ($("#PREFERRED_COLLECTION_METHOD_ID").val() != "select") {
2351					trxUserBean.contract.incentive.collection_method_id = $("#PREFERRED_COLLECTION_METHOD_ID").val();
2352					if ($('[id*="PREFERRED_COLLECTION_METHOD_COLOR"]').is(':visible')) {
2353						$("#contractLite").hide();
2354					} else if ($("#PREFERRED_NUM_COLLECTION_DAYS_SEC").is(':visible')) {
2355						$("#contractLite").show();	
2356					}
2357					
2358					$("#contractButtonDivId").show();
2359					showContractSummary();
2360				} else {
2361					$("#contractLite").hide();
2362					$("#contractButtonDivId").hide();
2363					$("#contButSec").hide();
2364					$("#contractLite").hide();
2365				}
2366			}
2367			
2368		});
2369
2370	
2371		$("#PREFERRED_NUM_COLLECTION_DAYS_SEC").change(function() { // change handler
2372			//$("#contButSec").show();
2373			var days = $('input[name=PREFERRED_NUM_COLLECTION_DAYS]:checked').val();
2374			var color = $("#PREFERRED_COLLECTION_METHOD_COLOR_17").is(':visible');
2375			var color2 = $("#PREFERRED_COLLECTION_METHOD_COLOR_17_PRO").is(':visible');
2376			var color3 = $("#PREFERRED_COLLECTION_METHOD_COLOR_IPAD_MINI").is(':visible');
2377			var colorVal = "";
2378			
2379			if (color) colorVal = $("#PREFERRED_COLLECTION_METHOD_COLOR_17").val();
2380			if (color2) colorVal = $("#PREFERRED_COLLECTION_METHOD_COLOR_17_PRO").val();
2381			if (color3) colorVal = $("#PREFERRED_COLLECTION_METHOD_COLOR_IPAD_MINI").val();
2382						
2383			// incentive.incentive_requirement_id + "," + incentive.num_collection_days + "," + incentive.num_rx + "," + incentive.num_details + "," + incentive.promo_flag;
2384			var inctValueChecked = $('input[name=PREFERRED_NUM_COLLECTION_DAYS]:checked').val().split(",");
2385
2386			trxUserBean.contract.incentive.collection_method_id = $("#PREFERRED_COLLECTION_METHOD_ID").val();
2387			trxUserBean.contract.incentive.incentive_requirement_id = inctValueChecked[0];
2388			trxUserBean.contract.num_collection_days = inctValueChecked[1];
2389			trxUserBean.contract.num_rx = inctValueChecked[2];
2390			trxUserBean.contract.num_details = inctValueChecked[3];
2391			trxUserBean.contract.promo_flag = inctValueChecked[4];
2392
2393			if ((color || color2 || color3) && (colorVal == "select")) {
2394				$("#contractLite").hide();
2395				$("#contractButtonDivId").hide();
2396			} else if ((color && color2 && color3 ) == false) {
2397				$("#contractLite").show();
2398				$("#contractButtonDivId").show();
2399				showContractSummary();
2400			} else {
2401				$("#contractLite").show();
2402				$("#contractButtonDivId").show();				
2403				showContractSummary();
2404			}
2405
2406		});
2407		
2408		// Phone color event		
2409		$("[id^=PREFERRED_COLLECTION_METHOD_COLOR_]").change(function(selObj) { // on color select
2410			var days = $('input[name=PREFERRED_NUM_COLLECTION_DAYS]:checked').val();
2411			
2412			$("#"+selObj.currentTarget.id+" option[value='select']").remove(); // remove pls select opt
2413
2414			if ($("#PREFERRED_NUM_COLLECTION_DAYS_ONE").is(':visible')) { // no days selection
2415				$("#contractLite").show();
2416				$("#contractButtonDivId").show();	
2417				showContractSummary();
2418			} else if (days != undefined) { // days selected
2419				$("#contractLite").show();
2420				$("#contractButtonDivId").show();					
2421				showContractSummary();
2422			}
2423		});
2424	}
2425}
2426
2427
2428function getCollectionOptions() {
2429	var l = $('label', '#PREFERRED_NUM_COLLECTION_DAYS-container_control').parent().html();
2430	var incentives;
2431	$(".funkyradio").html("");
2432	if (getMobileDevice.any()) $('#PREFERRED_NUM_COLLECTION_DAYS_SEC').html(""); // mobile
2433	$("#multiReq").hide();
2434	$("#oneReq").hide();
2435				
2436	$("#PREFERRED_COLLECTION_METHOD_COLOR_17-container_control").hide();
2437	$("#PREFERRED_COLLECTION_METHOD_COLOR_17_PRO-container_control").hide();
2438	$("#PREFERRED_COLLECTION_METHOD_COLOR_IPAD_MINI-container_control").hide();
2439	
2440	$("#PREFERRED_COLLECTION_METHOD_COLOR_GROUP_17").hide();
2441	$("#PREFERRED_COLLECTION_METHOD_COLOR_GROUP_17_PRO").hide();
2442	$("#PREFERRED_COLLECTION_METHOD_COLOR_GROUP_IPAD_MINI").hide();
2443
2444					
2445	if ($("#PREFERRED_COLLECTION_METHOD_ID").val() == "select") {
2446		$('#PREFERRED_NUM_COLLECTION_DAYS-container_control').hide();
2447		$('#PREFERRED_NUM_COLLECTION_DAYS_ONE').hide();
2448	} else {
2449		incentives = iDaysArray[$("#PREFERRED_COLLECTION_METHOD_ID").val()];
2450		
2451		$('label,br,input,span', '#PREFERRED_NUM_COLLECTION_DAYS-container_control').remove();
2452		$('label,br,input,span', '#PREFERRED_NUM_COLLECTION_DAYS_ONE').remove();
2453		$('#PREFERRED_NUM_COLLECTION_DAYS-container_control').append(l);
2454			
2455		console.log(incentives)
2456			
2457		$.each(incentives, function(id, incentive) {
2458			var label = "";
2459			var inctValue = incentive.incentive_requirement_id + "," + incentive.num_collection_days + "," + incentive.num_rx + "," + incentive.num_details + "," + incentive.promo_flag;
2460			if (incentive.num_collection_days != 0) {
2461				label = incentive.num_collection_days + " patient days a week";		
2462			} else if (incentive.num_rx != 0) {
2463				label = incentive.num_rx + " treatments/month";		
2464			}
2465			
2466			if (label!="") label += " and ";
2467
2468			if ((incentive.promo_flag) && (incentive.num_details > 0))
2469				label += incentive.num_details + " sales rep visits per week";
2470			else if (incentive.promo_flag)
2471				label += "all sales rep activity";
2472			label += " ($" + incentive.amount + "/month)";
2473
2474
2475			if (! getMobileDevice.any()) {
2476				$(".funkyradio")
2477					.append(
2478					'<div class="funkyradio-primary" style="width:600px">' +
2479					'<input type="radio" name="PREFERRED_NUM_COLLECTION_DAYS" value="'+inctValue+'" id="irid'+incentive.incentive_requirement_id+'" />' +
2480					'<label for="irid'+incentive.incentive_requirement_id+'">Report '+label+'</label></div>'
2481					);
2482			} else {						
2483				$('#PREFERRED_NUM_COLLECTION_DAYS_SEC').append("<input type='radio' name='PREFERRED_NUM_COLLECTION_DAYS' value='" + inctValue + "' id='irid"+incentive.incentive_requirement_id+"'/>");
2484				$('#PREFERRED_NUM_COLLECTION_DAYS_SEC').append("<label for='irid"+incentive.incentive_requirement_id+"'>Report "+ label + "</label>").enhanceWithin(); 
2485			}		
2486		
2487			if (incentives.length == 1) {
2488				$("#multiReq").hide();
2489				$("#oneReq").show();
2490				$("#irid"+incentive.incentive_requirement_id).click();
2491			} else {
2492				$("#multiReq").show();
2493				$("#oneReq").hide();
2494			}
2495		});
2496					
2497		$('#PREFERRED_NUM_COLLECTION_DAYS_SEC').show();
2498					
2499		if (($("#PREFERRED_COLLECTION_METHOD_ID").val() == "9") || ($("#PREFERRED_COLLECTION_METHOD_ID").val() == "10")) { // iPhone colors				
2500			$("#PREFERRED_COLLECTION_METHOD_COLOR_17_PRO-container_control").show();
2501			$("#PREFERRED_COLLECTION_METHOD_COLOR_GROUP_17_PRO").show();
2502		} else if ($("#PREFERRED_COLLECTION_METHOD_ID").val() == "2") { // iPhone 14 Colors
2503			$("#PREFERRED_COLLECTION_METHOD_COLOR_17-container_control").show();
2504			$("#PREFERRED_COLLECTION_METHOD_COLOR_GROUP_17").show();
2505		} else if ($("#PREFERRED_COLLECTION_METHOD_ID").val() == "6") { // iPad Mini Colors
2506			$("#PREFERRED_COLLECTION_METHOD_COLOR_IPAD_MINI-container_control").show();
2507			$("#PREFERRED_COLLECTION_METHOD_COLOR_GROUP_IPAD_MINI").show();
2508		}
2509	}
2510}
2511
2512
2513function showContractSummary() {
2514	$("#hasDays").hide();
2515	$("#hasRx").hide();
2516	$("#countRep").hide();
2517	$("#allRep").hide();
2518
2519	if (trxUserBean.edc_status_code=="TARGET") { // Targeted user
2520		$("#contractData").remove();
2521		$("#pdfcontractiframedivid").remove();
2522		$("#contractSum_header").next().remove();
2523		$("#contractSum_header").css("margin-bottom","0px");
2524
2525		RegistrationDAO.getPreRegIncentives(trxUserBean.targetrx_id, trxUserBean.panel_id, trxUserBean.contract, function (incentive) {
2526			trxUserBean.contract.incentive.amount = incentive.amount;
2527
2528			if (trxUserBean.contract.num_collection_days != 0) {
2529				var daysLabel = (trxUserBean.contract.num_collection_days > 1) ? " days" : " day";
2530				$("#contractSum").find('.collectiondays').html(trxUserBean.contract.num_collection_days + daysLabel + " per week");
2531				$("#hasDays").show();
2532			}
2533			if (trxUserBean.contract.num_rx != 0) {
2534				$("#contractSum").find('.numRx').html(trxUserBean.contract.num_rx);
2535				$("#hasRx").show();
2536			}
2537			if (trxUserBean.contract.num_details != 0) {
2538				$("#contractSum").find('.numDetails').html(trxUserBean.contract.num_details);
2539				$("#countRep").show();
2540			} else if (trxUserBean.contract.promo_flag == "true") {
2541				$("#allRep").show();
2542			}
2543			
2544			$("#contractSum").find('.honorarium').html("$"+trxUserBean.contract.incentive.amount);
2545			RegistrationDAO.setPartialRegUser(trxUserBean);
2546
2547			RegistrationDAO.getContractTermPeriods(function(terms) {
2548				$("#contractSum").find('.timeperiod').html(terms[0]);
2549				$("#contractLite").show();
2550				
2551				// hide for colors
2552				if ($("#PREFERRED_COLLECTION_METHOD_COLOR_17-container_control").is(':visible')) {
2553					if ($("#PREFERRED_COLLECTION_METHOD_COLOR_17").val() == "select") {
2554						$("#contractLite").hide();
2555						$("#contractButtonDivId").hide();
2556					}
2557				} else if ($("#PREFERRED_COLLECTION_METHOD_COLOR_17_PRO-container_control").is(':visible')) {
2558					if ($("#PREFERRED_COLLECTION_METHOD_COLOR_17_PRO").val() == "select") {
2559						$("#contractLite").hide();
2560						$("#contractButtonDivId").hide();
2561					}
2562				} else if ($("#PREFERRED_COLLECTION_METHOD_COLOR_IPAD_MINI-container_control").is(':visible')) {
2563					if ($("#PREFERRED_COLLECTION_METHOD_COLOR_IPAD_MINI").val() == "select") {
2564						$("#contractLite").hide();
2565						$("#contractButtonDivId").hide();
2566					}
2567				}
2568			});
2569
2570			$("#contractSum").show();
2571		});	
2572	} else if ((trxUserBean.edc_status_code=="INACTIVE")) { // Inactive user
2573		$("#contractSum").html(CONTRACT_INACTIVE);	
2574		$("#contractButtonDivId").hide();
2575		$("#contButSec").hide();
2576		$("#contractSum").show();		
2577	} else if (((trxUserBean.edc_status_code=="INSTALLED") || (trxUserBean.edc_status_code=="PENDING") )) { // Contracted user
2578	    $("#INCENTIVE_SECTION").hide();
2579		$("#pdfcontractiframedivid").hide();		
2580
2581		$("#contractData").html("");
2582		$("#contractData").after("<ul>");
2583		$("#contractData").append("<li><b>Contract Status:</b> "+trxUserBean.contract.contract_status_code+"</li>");
2584		$("#contractData").append("<li><b>Device:</b> "+trxUserBean.contract.incentive.collection_device_desc+"</li>");
2585		if (trxUserBean.regSurveyDataList.DEVICE_COLOR != null) 
2586			$("#contractData").append("<li><b>Device Color:</b> "+trxUserBean.regSurveyDataList.DEVICE_COLOR+"</li>");
2587		$("#contractData").append("<li><b>Honoraria Amount:</b> "+"$"+trxUserBean.contract.contracted_amount+"</li>");
2588
2589
2590		if (trxUserBean.contract.num_collection_days != 0) {
2591			var daysLabel = (trxUserBean.contract.num_collection_days > 1) ? " days" : " day";
2592			$("#contractSum").find('.collectiondays').html(trxUserBean.contract.num_collection_days + daysLabel + " per week");
2593			$("#hasDays").show();
2594		}
2595		if (trxUserBean.contract.num_rx != 0) {
2596			$("#contractSum").find('.numRx').html(trxUserBean.contract.num_rx + " per month");
2597			$("#hasRx").show();
2598		}
2599		if (trxUserBean.contract.num_details != 0) {
2600			$("#contractSum").find('.numDetails').html(trxUserBean.contract.num_details);
2601			$("#countRep").show();
2602		} else if (trxUserBean.contract.promo_flag) {
2603			$("#allRep").show();
2604		}
2605
2606		$("#contractSum").find('.honorarium').html("$"+trxUserBean.contract.contracted_amount);		
2607		$("#contractSum").find('.timeperiod').html(trxUserBean.contract.term_period_months);
2608		$("#contractButtonDivId").hide();		
2609		$("#contButSec").hide();
2610		$("#contractLite").show();
2611		$("#contractSum").show();
2612	}
2613}
2614
2615
2616function contractAccepted(nextPage) { // tied to ACCEPT button
2617	var cURL = "/IRXPhysPortal/Registration/Confirmation";
2618	var oldEDCStatusCode = "";
2619	var contractTemplateFileName = "ContractRequirements.html";
2620
2621	oldEDCStatusCode = trxUserBean.edc_status_code;
2622
2623	handelMenuItemOnRegistrationPage("CONFIRMATION");
2624		
2625	// check if this user is accepting after a reject
2626	if (trxUserBean.edc_status_code == "DECLINED") {
2627		if (!validatePage()) {
2628			return;
2629		} else {
2630			trxUserBean.contract.incentive.collection_method_id = $("#PREFERRED_COLLECTION_METHOD_ID").val();
2631		}
2632	}
2633
2634	useLoadingMessage("Completing your registration, please wait.");
2635	
2636	// iPhone color handling
2637	var answerArray = new Array();
2638	var srd = new RegSurveyResponseData();
2639	srd.entity_short_name = "DEVICE_COLOR";
2640
2641	if ($("#PREFERRED_COLLECTION_METHOD_COLOR_17").val() != "select") { 								
2642		srd.response_value_string = $("#PREFERRED_COLLECTION_METHOD_COLOR_17").val();		
2643	} else if ($("#PREFERRED_COLLECTION_METHOD_COLOR_17_PRO").val() != "select") { 								
2644		srd.response_value_string = $("#PREFERRED_COLLECTION_METHOD_COLOR_17_PRO").val();		
2645	} else if ($("#PREFERRED_COLLECTION_METHOD_COLOR_IPAD_MINI").val() != "select") { 								
2646		srd.response_value_string = $("#PREFERRED_COLLECTION_METHOD_COLOR_IPAD_MINI").val();		
2647	} else {
2648		srd.response_value_string = "";		
2649	}
2650	answerArray.push(srd);								
2651				
2652	srd = new RegSurveyResponseData();
2653	srd.entity_short_name = "DEVICE_ID";					
2654	srd.response_value_string = trxUserBean.contract.incentive.collection_method_id;
2655	answerArray.push(srd);
2656
2657	srd = new RegSurveyResponseData();
2658	srd.entity_short_name = "NUM_COLLECTION_DAYS";					
2659	srd.response_value_string = trxUserBean.contract.num_collection_days;
2660	answerArray.push(srd);
2661
2662	srd = new RegSurveyResponseData();
2663	srd.entity_short_name = "NUM_RX";					
2664	srd.response_value_string = trxUserBean.contract.num_rx;
2665	answerArray.push(srd);
2666
2667	srd = new RegSurveyResponseData();
2668	srd.entity_short_name = "NUM_DETAILS";					
2669	srd.response_value_string = trxUserBean.contract.num_details;
2670	answerArray.push(srd);
2671
2672	srd = new RegSurveyResponseData();
2673	srd.entity_short_name = "PROMO_FLAG";					
2674	srd.response_value_string = trxUserBean.contract.promo_flag;
2675	answerArray.push(srd);
2676
2677	// create contract file 	
2678	RegistrationDAO.generateContract(trxUserBean, templateContractPath+contractTemplateFileName, completedContractPath, DEFAULT_TERM_PERIOD, 
2679		function(replyContractFileName) {
2680			$("#tempRegdData").attr("contractFileName", replyContractFileName); //contract file name is stored here.
2681			
2682			// updateUserContract - updates the existing contract if DECLINED
2683			if (oldEDCStatusCode=="DECLINED") { // this user is accepting after a decline
2684				RegistrationDAO.updateUserContract(trxUserBean, "DECLINED", "ACCEPTED", trxUserBean.targetrx_id+"", function(contract) {
2685					trxUserBean.contract = contract;
2686					completeContract(trxUserBean, answerArray, contract, completedContractPath, replyContractFileName)
2687				});
2688			// updateUserContract - updates the existing contract if PENDING
2689			}
2689 else if (oldEDCStatusCode=="PENDING") { 
2690				RegistrationDAO.updateUserContract(trxUserBean, "ACCEPTED", "ACCEPTED", trxUserBean.targetrx_id+"", function(contract) {
2691					trxUserBean.contract = contract;
2692					completeContract(trxUserBean, answerArray, contract, completedContractPath, replyContractFileName)
2693				});
2694			// inserts new contract
2695			} else { 
2696				RegistrationDAO.insertUserContract(trxUserBean, "ACCEPTED", trxUserBean.targetrx_id+"", function(contract) {
2697					trxUserBean.contract = contract;
2698					completeContract(trxUserBean, answerArray, contract, completedContractPath, replyContractFileName);
2699				});
2700
2701			}
2702		});
2703}
2704
2705
2706function completeContract(trxUserBean, answerArray, contract, completedContractPath, replyContractFileName) {
2707	trxUserBean.edc_status_code = "PENDING";		
2708		
2709	RegistrationDAO.setUserSurveyResponse(sourceCode, trxUserBean, answerArray, "CONTRACT", function (status) {					
2710		completeRegistration("");			
2711	});
2712}
2713
2714
2715function popUpAddress() {
2716	// If user has no mailing address
2717	if (trxUserBean.mail_postal_code == null) {
2718		$('#mailingAddress').load(siteURLBase + "/Registration/Contact?smart="+trxUserBean.targetrx_id + " #primaryOfficeInformation", function () {
2719			$('#isSecondrayAndMailingAddress-container_control').remove();
2720			$("#PHONE_NUM-container_control").remove();
2721			$("#MOBILE_PHONE_NUM-container_control").remove();
2722
2723			addAddressHelpers(trxUserBean);
2724			$("#primaryOfficeInformation_header").html("This is the address we will send your device to. Please note we do not ship devices to P.O. boxes.");
2725			$("#PRIMARY_ADDRESS_LINE_1").val(trxUserBean.primary_address_line_1);
2726			$("#PRIMARY_ADDRESS_LINE_2").val(trxUserBean.primary_address_line_2); 
2727			$("#PRIMARY_POSTAL_CODE").val(trxUserBean.primary_postal_code);
2728			$("#PRIMARY_CITY_NAME").val(trxUserBean.primary_city_name);
2729
2730			$("#PRIMARY_POSTAL_CODE").trigger("change");
2731
2732			$("#PRIMARY_ADDRESS_LINE_1-extraInfoLabel").html("<br/>(Street Address - No P.O. Boxes)<br/>");
2733
2734			hideLoadingMessage();				
2735			$("#UPDATE_ADDRESS").modal("show");
2736		});
2737	} else {
2738		$('#mailingAddress').load(siteURLBase + "/Registration/Contact?smart="+trxUserBean.targetrx_id + " #mailingAddressInformation", function () {
2739			addAddressHelpers(trxUserBean);
2740			$("#mailingAddressInformation_header").html("This is the address we will send your device to. Please note we do not ship devices to P.O. boxes.");
2741			$("#mailingAddressInformation_header").next().remove();
2742			$("#MAIL_LOCATION_TYPE_CODE-container_control").remove();
2743
2744			$("#MAIL_ADDRESS_LINE_1").val(trxUserBean.mail_address_line_1);
2745			$("#MAIL_ADDRESS_LINE_2").val(trxUserBean.mail_address_line_2); 
2746			$("#MAIL_POSTAL_CODE").val(trxUserBean.mail_postal_code);
2747			$("#MAIL_CITY_NAME").val(trxUserBean.mail_city_name);
2748
2749			$("#MAIL_POSTAL_CODE").trigger("change");
2750
2751			$("#MAIL_ADDRESS_LINE_1-extraInfoLabel").html("(Street Address - No P.O. Boxes)<br/>");
2752
2753			hideLoadingMessage();				
2754			$("#UPDATE_ADDRESS").modal("show");
2755		});
2756	}
2757}
2758
2759
2760function contractDeclined(nextPage){
2761	handelMenuItemOnRegistrationPage("CONFIRMATION");
2762	waitSpinnerOn("#contractButtonDivId","Processing...");
2763
2764	// If user has already declined
2765	if (trxUserBean.edc_status_code != "DECLINED") {
2766		trxUserBean.edc_status_upd_date = $.datepicker.formatDate('mm/dd/yy', new Date()); 
2767
2768		RegistrationDAO.insertUserContract(trxUserBean, "DECLINED", trxUserBean.targetrx_id+"", function() {
2769			trxUserBean.edc_status_code = "DECLINED";
2770			completeRegistration(nextPage);
2771		});
2772	} else {
2773		completeRegistration(nextPage);
2774	}
2775}
2776
2777
2778function popUpReset() {
2779	$("#passErrorMsg").html("").hide();
2780	$("#currentPassword").val("");
2781	$("#newPassword").val("");
2782	$("#confPassword").val("");
2783	$("#updPasswdFooter").show();
2784	$("#passOkMsg").hide();
2785	$("#updPassCont").hide();				
2786	$("#passMsg").show();
2787	$("#UPDATE_PASSWORD").modal("show");
2788}
2789
2790function popUpVerificationHelp() {
2791	$("#VERIFICATION_HELP").modal("show");
2792}
2793
2794function updatePassword() {
2795	passwordMsg = "";
2796	currentPassword = $("#currentPassword").val().trim();
2797	newPassword = $("#newPassword").val().trim();
2798	confPassword = $("#confPassword").val().trim();
2799	$("#passErrorMsg").html("").hide();
2800	
2801	if (currentPassword == "") {
2802		$("#passErrorMsg").append("You must enter your current password.<br/>");
2803	}
2804	
2805	if (!isPassword(newPassword)) {
2806		passwordMsg = passwordMsg.replace(/password/g,"new password");
2807		$("#passErrorMsg").append(passwordMsg);
2808	}
2809	
2810	if (newPassword != confPassword) {
2811		$("#passErrorMsg").append("<br/>
2811Your confirmation password does not match.");
2812	}
2813	
2814	if ($("#passErrorMsg").html() == "") {
2815		waitSpinnerOn("#updPasswdFooter", PLEASE_WAIT);
2816		// change users password
2817		RegistrationDAO.changePassword(trxUserBean, currentPassword, newPassword, "TRX", trxUserBean.targetrx_id+"", function (status) {		
2818			if (status == 1) {
2819				waitSpinnerOff("#updPasswdFooter");
2820				$("#updPasswdFooter").hide();
2821				$("#updPassCont").show();				
2822
2823				$("#passOkMsg").show();
2824				$("#passMsg").hide();				
2825			} else {
2826				waitSpinnerOff("#updPasswdFooter");
2827				$("#passErrorMsg").html("We had a problem changing your password, make sure you entered your current password correctly.").show();
2828			}
2829		});
2830	} else {
2831		$("#passErrorMsg").show();
2832	}
2833}
2834
2835
2836function completeRegistration(nextPage) {
2837	var action = "post";
2838	if ((regStatus=="FULL") || (regStatus=="HOLD")) action = "update";
2839	
2840	// fix?
2841	if (trxUserBean.registration_date != null) {
2842		action = "update";
2843		trxUserBean.registration_status_code = "FULL";
2844	}
2845	
2846	RegistrationDAO.setAndGetUser(trxUserBean, action, "COMP", function (trxUserBeanNew) {
2847		if (trxUserBeanNew != null) {
2848			trxUserBean = trxUserBeanNew;
2849
2850			// Send thanks email here
2851			if (regStatus=="FULL") RegistrationDAO.sendRegistrationConfirmationEmail(trxUserBean); 
2852
2853			if (nextPage != "") 
2854				window.location = nextPage;
2855			else
2856				popUpAddress(); // for EDC
2857
2858			// Facebook
2859			fbq('track', 'CompleteRegistration', {value: 25.00,currency: 'USD'});
2860		} else {
2861			alert(SYSERRORMSG);
2862		}
2863		return trxUserBeanNew;
2864	});
2865}
2866
2867
2868function popUpContract() {
2869	var w = 800, h = 700;
2870	var posX, posY; //position of popup
2871	var offsetX=100, offsetY=100; //x and y offset relative to the parent window
2872
2873	if (typeof window.screenLeft != "undefined"){ //IE
2874		posX = window.screenLeft + offsetX;
2875		posY = window.screenTop + offsetY; 
2876	}
2877	else if (typeof window.screenX != "undefined"){ //NS/Moz
2878		posX = window.screenX + offsetX;
2879		posY = window.screenY + offsetY;
2880	}
2881	else { //default - center of screen
2882		posX = screen.availWidth/2 - w/2;
2883		posY = screen.availHeight/2 - h/2;
2884	}
2885
2886	popupWindow = window.open(
2887        '/IRXPhysPortal/EDCMemberPages/ContractPopup','popUpWindow',
2888		'resizable=yes,scrollbars=no,toolbar=no,menubar=no,location=no,directories=no,status=no,' + 
2889		'width='+w+', height='+h+', top='+posY+', left='+posX);
2890}
2891
2892function initSpecialty() {	
2893	$("#primarySpecSearchTerm").autocomplete({
2894		source: getSpecialty,
2895		minLength: 3,
2896		autoFocus: true,
2897		delay: 500,
2898		select: function( event, ui ) {
2899			$("#PRIMARY_SPEC_CODE").val(ui.item.value);
2900			$("#primarySpecSearchTerm").val(ui.item.label);
2901			setSpecialty();
2902			return false;
2903			}
2904	});	
2905	$("#primarySpecSearchTerm").after("<input type='hidden' id='PRIMARY_SPEC_CODE'/>");
2906	
2907	$("#secondarySpecSearchTerm").autocomplete({
2908		source: getSpecialty,
2909		minLength: 3,
2910		autoFocus: true,
2911		delay: 500,
2912		select: function( event, ui ) {
2913			$("#SECONDARY_SPEC_CODE").val(ui.item.value);
2914			$("#secondarySpecSearchTerm").val(ui.item.label);
2915			setSpecialty();
2916			return false;
2917			}
2918	});	
2919	$("#secondarySpecSearchTerm").after("<input type='hidden' id='SECONDARY_SPEC_CODE'/>");
2920	
2921	if (trxUserBean.primary_spec_code != "null") {
2922		RegistrationDAO.getSpecialtyDescription(trxUserBean.primary_spec_code, function (desc) {
2923			$("#primarySpecSearchTerm").val(desc);
2924			$("#PRIMARY_SPEC_CODE").val(trxUserBean.primary_spec_code);
2925		});
2926	}
2927
2928	if (trxUserBean.secondary_spec_code != "null") {
2929		RegistrationDAO.getSpecialtyDescription(trxUserBean.secondary_spec_code, function (desc) {
2930			$("#secondarySpecSearchTerm").val(desc);
2931			$("#SECONDARY_SPEC_CODE").val(trxUserBean.secondary_spec_code);
2932		});
2933	}
2934}
2935
2936function getSpecialty(request, response) {
2937	$.ajax({
2938		url: "/sitejsp/getSpecialties.jsp",
2939		dataType: "json",
2940		data: {
2941		term: request.term,
2942		ptc: trxUserBean.person_type_code
2943		},
2944		success: function( data ) {             
2945
2946			if (data[0].label == "") {
2947				alert("No specialties were found. Please try again.")
2948				if ($("#primarySpecSearchTerm").val() == request.term)
2949					$("#primarySpecSearchTerm").val("");
2950				if ($("#secondarySpecSearchTerm").val() == request.term)
2951					$("#secondarySpecSearchTerm").val("");
2952			} else {
2953				response(data);
2954			}			
2955		}
2956	});
2957	
2958}
2959
2960function setSpecialty() {
2961	trxUserBean.primary_spec_code = $("#PRIMARY_SPEC_CODE").val();;
2962	trxUserBean.secondary_spec_code = $("#SECONDARY_SPEC_CODE").val();;
2963	RegistrationDAO.setUser(trxUserBean, "update", "SPECIALTIES", function (status) {});
2964}
2965
2966
2967function initSpecialtyMobile( e, data ) {		
2968	var $ul = $( this ),
2969	$input = $( data.input ),
2970	value = $input.val(),
2971	html = "";
2972	$ul.html("");
2973	var targetEle = data.input[0].id;
2974	
2975	if ( value && value.length > 2 ) {
2976		$ul.html( "<li><div class='ui-loader'><span class='ui-icon ui-icon-loading'></span></div></li>" );
2977		$ul.listview( "refresh" );
2978		$.ajax({
2979			url: "/sitejsp/getSpecialties.jsp",
2980			dataType: "json",			
2981			data: {
2982				term: $input.val(),
2983				ptc: trxUserBean.person_type_code
2984			}
2985			}).then( function ( response ) {
2986				$.each( response, function ( i, val ) {
2987				html += "<li id='"+val.value+"'>" + val.label + "</li>";
2988			});
2989		
2990			$ul.html( html );
2991			$ul.listview("refresh");
2992			$ul.trigger("updatelayout");							
2993
2994			$('li').click(function () {			
2995				$("#"+targetEle).val($(this).text());
2996				if (targetEle.indexOf("primary") != -1)
2997					$("#PRIMARY_SPEC_CODE").val($(this).attr('id'));
2998				else
2999					$("#SECONDARY_SPEC_CODE").val($(this).attr('id'));
3000				
3001				setSpecialty();		
3002
3003				$ul.html("");
3004				$ul.listview("refresh");
3005				$ul.trigger("updatelayout");							
3006			});
3007		});
3008	}
3009}
3010
3011function sendEmailVerification() {
3012	RegistrationDAO.sendVerificationEmail(trxUserBean);
3013	$("#UPDATE_EMAIL").modal("hide");
3014}
3015
3016// may not be used anymore
3017function updateEmail() {			
3018	var nextPage = $("#VERIFICATION_FORM").attr("action");				
3019	$("#UPDATE_EMAIL").modal("hide");
3020	if (trxUserBean.email_verified_flag == "X") { // they changed it
3021		currEmail = trxUserBean.email_address;
3022		trxUserBean.email_verified_flag = "N"
3023		persistUser(nextPage,true);
3024	} 
3025}
3026
3027
3028function verifyEmailCode() {
3029	var vCode = $("#emailVerificationCode").val().trim();
3030	$("#emailVerificationCode-errorholder").html("&nbsp;");
3031	
3032	if (trxUserBean.targetrx_id == vCode) {
3033		waitSpinnerOn("#verifyEmailBtn", LOADING);
3034		RegistrationDAO.setUserFulfillment(trxUserBean, "AMAZON", "Y", "VERIFY_EMAIL_CODE", function (retTrxUserBean) {
3035			waitSpinnerOff("#verifyEmailBtn");
3036			trxUserBean = retTrxUserBean;
3037			$("#AMAZON_VERIFIED_MSG").modal("show");
3038			$("#clickVerify").hide();
3039			$("#emailVerificationCode-container_control").hide();
3040			$("#verifyEmailBtn").hide();
3041		});
3042	} else {
3043		$("#emailVerificationCode-errorholder").html("<br/>Invalid code");
3044	}	
3045}
3046
3047
3048function setAmazon() {
3049	waitSpinnerOn(".ui-dialog-buttonset", LOADING);
3050	RegistrationDAO.setUserFulfillment(trxUserBean, "AMAZON", "Y", "SET_AMAZON", function () {
3051		waitSpinnerOff(".ui-dialog-buttonset");
3052		$("#AMAZON_VERIFIED").modal("hide");				
3053	});
3054}
3055
3056function setCheck() {
3057	waitSpinnerOn(".ui-dialog-buttonset", LOADING);
3058	RegistrationDAO.setUserFulfillment(trxUserBean, "CHECK", null, "SET_CHECK", function () {
3059		waitSpinnerOff(".ui-dialog-buttonset");
3060		$("#CHECK_MSG").modal("hide");				
3061	});
3062}
3063
3064function setAmazonNotVerified() {
3065	var fullType = $("[name='PREFERRED_FULFILLMENT_METHOD']:checked").val();				
3066	var vCode = $("#vCode").val().trim();				
3067
3068	if (trxUserBean.targetrx_id == vCode) { // code matches
3069		waitSpinnerOn(".ui-dialog-buttonset", LOADING);
3070						
3071		if ((fullType == "AMAZON_DEFAULT") || (fullType == "AMAZON")) {
3072			RegistrationDAO.setUserFulfillment(trxUserBean, "AMAZON", "Y", "SET_AMAZON_NV", function (updUserBean) {
3073				waitSpinnerOff(".ui-dialog-buttonset");
3074				trxUserBean = updUserBean;
3075				$("#AMAZON_NOT_VERIFIED").modal("hide");
3076				$("#AMAZON_VERIFIED_MSG").modal("show");
3077				$("#clickVerify").hide();
3078				$("#paymentMsg").hide();
3079				$("#paymentSel").hide();
3080				$("#emailVerificationCode-container_control").hide();
3081				$("#verifyEmailBtn").hide();
3082				$("#EMAIL_ADDRESS_spanId").append(" (Verified)");
3083			});
3084		} else if (fullType == "AMAZON_THIS") { // ony for this program
3085			var pid = $("#pid").val();
3086			RegistrationDAO.addPaymentOverride(trxUserBean.targetrx_id, pid, "AMAZON", "SURVEY", ""+trxUserBean.targetrx_id, function() {
3087				RegistrationDAO.setUserFulfillment(trxUserBean, trxUserBean.preferred_fulfillment_method, "Y", "SET_AMAZON_NV", function (updUserBean) {
3088					trxUserBean = updUserBean;
3089					$("#AMAZON_NOT_VERIFIED").modal("hide");
3090					$("#AMAZON_VERIFIED_MSG").modal("show");
3091					$("#clickVerify").hide();
3092					$("#paymentMsg").hide();
3093					$("#paymentSel").hide();
3094				});
3095			});
3096		} else { // EDC payment
3097			RegistrationDAO.setUserFulfillment(trxUserBean, trxUserBean.preferred_fulfillment_method, "Y", "SET_AMAZON_NV", function (updUserBean) {
3098				trxUserBean = updUserBean;
3099				$("#AMAZON_NOT_VERIFIED").modal("hide");
3100				$("#AMAZON_VERIFIED_MSG").modal("show");
3101				$("#clickVerify").hide();
3102			});
3103		}
3104	} else {
3105		$("#CODE_STATUS_MSG").html("Invalid code");
3106	}
3107
3108}
3109
3110function setAmazonNotVerifiedNoCode() {
3111	waitSpinnerOn(".ui-dialog-buttonset", LOADING);
3112	var fullType = $("[name='PREFERRED_FULFILLMENT_METHOD']:checked").val();				
3113	
3114	if ((fullType == "AMAZON_DEFAULT") || (fullType == "AMAZON")) {
3115		RegistrationDAO.setUserFulfillment(trxUserBean, "AMAZON_UNVERIFIED", "N", "SET_AMAZON_NV_NC", function (updUserBean) {
3116			waitSpinnerOff(".ui-dialog-buttonset");
3117			trxUserBean = updUserBean;
3118			$("#AMAZON_NOT_VERIFIED").modal("hide");
3119			$("#AMAZON_NOT_VERIFIED_MSG").modal("show");
3120			$("#emailVerificationCode-container_control").show();
3121			$("#verifyEmailBtn").show();
3122			$("#paymentMsg").hide();
3123			$("#paymentSel").hide();
3124			waitSpinnerOff(".ui-dialog-buttonset");
3125		});				
3126	} else if (fullType == "AMAZON_THIS") {
3127		var pid = $("#pid").val();
3128		RegistrationDAO.addPaymentOverride(trxUserBean.targetrx_id, pid, "AMAZON", "SURVEY", ""+trxUserBean.targetrx_id, function() {
3129			$("#AMAZON_NOT_VERIFIED").modal("hide");
3130			$("#AMAZON_NOT_VERIFIED_MSG").modal("show");
3131			$("#emailVerificationCode-container_control").show();
3132			$("#verifyEmailBtn").show();
3133			$("#paymentMsg").hide();
3134			$("#paymentSel").hide();
3135			waitSpinnerOff(".ui-dialog-buttonset");
3136		});					
3137	} else {					
3138		$("#AMAZON_NOT_VERIFIED").modal("hide");
3139		$("#AMAZON_NOT_VERIFIED_MSG").modal("show");
3140		waitSpinnerOff(".ui-dialog-buttonset");
3141	}
3142}
3143
3144function paymentChangeHandler(trxUserBean) {
3145	var preferred_fulfillment_method = $("input[name='PREFERRED_FULFILLMENT_METHOD']:checked").val();
3146	
3147	if ((trxUserBean.email_verified_flag == "Y") && (preferred_fulfillment_method == "AMAZON")) {
3148		$("#amazon_verified").popup("open");
3149	} else if (((trxUserBean.email_verified_flag == null) || (trxUserBean.email_verified_flag == "N")) && (preferred_fulfillment_method == "AMAZON")) {
3150		RegistrationDAO.sendVerificationEmail(trxUserBean);
3151		$("#amazon_not_verified" ).popup( "option", "dismissible", false );
3152		$("#amazon_not_verified").popup( "open");										
3153	} else if ($('input[name=PREFERRED_FULFILLMENT_METHOD]:checked').val() == "CHECK") {
3154		$("#check_msg" ).popup( "option", "dismissible", false );
3155		$("#check_msg").popup("open");		
3156	}
3157	return preferred_fulfillment_method;
3158}
3159
3160// mobile
3161function changePaymentOption(option, verified) {
3162	$('#CODE_STATUS_MSG').html("&nbsp;");
3163	$('.vcode').show();
3164	$('#btnVerify').show();
3165	$('#btnLater').show();
3166	$('#btnClose').hide();
3167
3168	var pid = $("#pid").val();
3169	var fullType = $("[name='PREFERRED_FULFILLMENT_METHOD']:checked").val();	
3170	
3171	showLoading();
3172
3173	if (fullType == "AMAZON_THIS") {
3174		RegistrationDAO.addPaymentOverride(trxUserBean.targetrx_id, pid, "AMAZON", "SURVEY", ""+trxUserBean.targetrx_id, function() {
3175			hideLoading();
3176			changePaymentOptionCallback(option);
3177		});
3178	} else {
3179		RegistrationDAO.setUserFulfillment(trxUserBean, option, verified, "MOBILE", function (newUserObj) {
3180			hideLoading();
3181			trxUserBean = newUserObj;
3182			changePaymentOptionCallback(option);
3183		});
3184	}
3185}
3186
3187function changePaymentOptionCallback(option) {
3188	if (option == "CHECK") {    
3189		$('#check_msg').popup('close');
3190	} else if (option == "AMAZON_UNVERIFIED") {					
3191		$('#CODE_STATUS_MSG').html("<p>Until the email address is verified you will be paid by check within 2-4 weeks.</p>");
3192		$('.vcode').hide();
3193		$('#btnLater').hide();
3194		$('#btnClose').show();
3195		$('#btnVerify').hide();
3196		$('#btnVerifyC').hide();
3197	} else if (option == "AMAZON") {
3198		$('#amazon_verified').popup('close');
3199	}
3200
3201	$("#paymentMsg").hide();
3202	$("#paymentSel").hide();
3203}
3204
3205function verifyCode(fulMeth) { // mobile only
3206	$('#CODE_STATUS_MSG').html("&nbsp;");
3207	var vCode = $("#vCode").val().trim();
3208	
3209	var pid = $("#pid").val();
3210	var fullType = $("[name='PREFERRED_FULFILLMENT_METHOD']:checked").val();	
3211	if (trxUserBean.targetrx_id == vCode) { // code matches
3212		showLoading();
3213		
3214		if (fullType == "AMAZON_THIS") {			
3215			RegistrationDAO.addPaymentOverride(trxUserBean.targetrx_id, pid, "AMAZON", "SURVEY", ""+trxUserBean.targetrx_id, function() {
3216				RegistrationDAO.setUserFulfillment(trxUserBean, trxUserBean.preferred_fulfillment_method, "Y", "VERIFY_CODE", function (newUserObj) {
3217					hideLoading();		
3218					trxUserBean = newUserObj;					
3219					verifyCodeCallback();
3220				});
3221			});
3222		} else {
3223			RegistrationDAO.setUserFulfillment(trxUserBean, fulMeth, "Y", "VERIFY_CODE", function (newUserObj) {
3224				hideLoading();
3225				trxUserBean = newUserObj;
3226				verifyCodeCallback();
3227			});
3228		}
3229	} else {
3230		$('#CODE_STATUS_MSG').html("<p>Invalid code.</p>");
3231	}
3232}
3233
3234function verifyCodeCallback() {
3235	$('#CODE_STATUS_MSG').html("<p>Thank you for verifing your email.</p>");
3236	$('.vcode').hide();
3237	$('#btnClose').show();
3238	$('#btnLater').hide();
3239	$('#btnVerify').hide();
3240	$('#btnVerifyC').hide();
3241
3242	$('#nonVerifiedMsg').hide();
3243	$('#verifiedMsg').show();
3244	
3245	$("#paymentMsg").hide();
3246	$("#paymentSel").hide();
3247}
3248
3249//////////////////////////////////////
3250// Used in irxTextBlockDtnamic.jsp
3251//////////////////////////////////////
3252function loadSurveyPage(uname) {
3253	waitSpinnerOn("#wait_"+uname,"Finding your surveys...","wait45.gif");
3254
3255	$('#paragraph_'+uname).find('div#dynamicInput').load('/sitejsp/availSurveys.jsp #SURVEY_ACTIVITY', 
3256		function() {
3257		}
3258	);
3259}
3260
3261/*
3262function loadCollectionPage(uname) {
3263	waitSpinnerOn("#wait_"+uname,"Loading...","wait45.gif");
3264	$('#paragraph_'+uname).find('div#dynamicInput').load('/sitejsp/patInvite.jsp?load=1	#PATIENT_COLLECT', 
3265		function() {
3266		}
3267	);
3268}
3269*/
3270
3271function loadHistoryPage(days,uname) {
3272	waitSpinnerOn("#wait_"+uname,"Loading survey activity...","wait45.gif");
3273	$('#paragraph_'+uname).find('div#dynamicInput').load('/sitejsp/surveyHistory.jsp?mode=history&d='+days+' #SURVEY_ACTIVITY', 
3274		function() {
3275			$("#monthSel").val(days); 
3276			$("#monthSel").change(function() {
3277				loadHistoryPage($(this).val(),uname);
3278			});
3279		});
3280}		
3281
3282function loadIncentivePage(year,uname) {
3283	$("#paymentFooter").hide();
3284	$("#paymentNotes").hide();
3285
3286	waitSpinnerOn("#wait_"+uname,"Loading Payment Information...","wait45.gif");
3287	$('#paragraph_'+uname).find('div#dynamicInput').load('/sitejsp/paymentHistory.jsp?y='+year+' #INCENTIVE_HISTORY', 
3288		function() {
3289			$("#yearSel").change(function() {
3290				loadIncentivePage($(this).val(),uname);				
3291			});
3292						
3293			if ((isMobile=="false") || (isMobile=="null"))
3294				initPayments();
3295			else 
3296				$('#INCENTIVE_HISTORY').enhanceWithin();
3297			
3298			$("#paymentFooter").show();
3299			$("#paymentNotes").show();			
3300		});
3301}		
3302
3303function initPayments() {
3304	// Get Java user bean off the session and create Javascript object from it
3305	RegistrationDAO.getUserSessionBean(targetrx_id, function (trxUser) {
3306		trxUserBean = trxUser;
3307		var disabled = "";
3308
3309		var defaultPayMethod = trxUserBean.preferred_fulfillment_method;		
3310		if (defaultPayMethod=="CHECK") disabled = "disabled";				
3311		
3312		//if (defaultPayMethod == "AMAZON_UNVERIFIED") defaultPayMethod = "AMAZON";			
3313		$("input[name=PREFERRED_FULFILLMENT_METHOD][value='"+defaultPayMethod+"']").attr('checked', true);
3314
3315		// EDC Payments
3316		if ((trxUserBean.edc_status_code != "NONE") && (trxUserBean.edc_status_code != "TARGET")) {
3317			RegistrationDAO.getUserPaymentOverrides(trxUserBean.targetrx_id, function(edcEvents) {
3318				var content = "";
3319				for (var key in edcEvents) {
3320					var parts = key.split("_");
3321					var pid = parts[0];
3322					var meth = parts[1];
3323					var a_checked = "";
3324					var c_checked = "";
3325					
3326					if (meth=="null") {
3327						if (trxUserBean.preferred_fulfillment_method=="CHECK") 
3328							c_checked = "checked";
3329						else
3330							a_checked = "checked";									
3331					} else if (meth == "AMAZON") {
3332						a_checked = "checked";									
3333					} else if (meth == "CHECK") {
3334						c_checked = "checked";
3335					}
3336					
3337					content = "<fieldset style='padding-top:0px;padding-bottom:0px;width:40%;border:none;margin:0 0 0 0;'>";
3338					content += "<div style='float:left;padding-bottom:0px;'>"+edcEvents[key]+"</div>";
3339					content += "<div style='float:right;width:65%;'>";
3340					content += "<input type='radio' id='EVENT_FULFILLMENT_METHOD_"+pid+"_C' name='EVENT_FULFILLMENT_METHOD_"+pid+"' value='CHECK' " + c_checked + " onclick='changeEDCPay(this)'>";
3341					content += "<label class='ui-first-child' for='EVENT_FULFILLMENT_METHOD_"+pid+"_C'>Check</label>";
3342					content += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
3343					content += "<input type='radio' " + disabled + " id='EVENT_FULFILLMENT_METHOD_"+pid+"_A' name='EVENT_FULFILLMENT_METHOD_"+pid+"' value='AMAZON' " + a_checked + " onclick='changeEDCPay(this)'>";
3344					content += "<label class='ui-last-child' for='EVENT_FULFILLMENT_METHOD_"+pid+"_A'>Amazon</label>";
3345					content += "</div>";
3346					content += "</fieldset>";
3347						
3348					$("#futurePayments").append(content);
3349					$("#futurePayments").show();
3350				}
3351				if (trxUserBean.preferred_fulfillment_method=="CHECK")
3352					$("#futurePayments").append("<b>Amazon pay is temporarily unavailable.</b>");
3353			});
3354		}
3355	});
3356
3357
3358	$('input[name=PREFERRED_FULFILLMENT_METHOD]').click(function() {
3359		preferred_fulfillment_method = $('input[name=PREFERRED_FULFILLMENT_METHOD]:checked').val();
3360		if ((trxUserBean.email_verified_flag == "Y") && (preferred_fulfillment_method == "AMAZON")) {
3361			$(".currEmail").html(trxUserBean.email_address);
3362			$("#AMAZON_VERIFIED").modal("show");	
3363		} else if (((trxUserBean.email_verified_flag == null) || (trxUserBean.email_verified_flag == "N")) && (preferred_fulfillment_method == "AMAZON")) {
3364			$(".currEmail").html(trxUserBean.email_address);
3365			trxUserBean.preferred_fulfillment_method = preferred_fulfillment_method;
3366			RegistrationDAO.sendVerificationEmail(trxUserBean);
3367			$("#AMAZON_NOT_VERIFIED").modal({backdrop: 'static', keyboard: false});	
3368		} else if ($('input[name=PREFERRED_FULFILLMENT_METHOD]:checked').val() == "CHECK") {
3369			trxUserBean.preferred_fulfillment_method = preferred_fulfillment_method;
3370			if (trxUserBean.registration_status_code != null) 
3371				RegistrationDAO.setUser(trxUserBean, "update", "VERIFICATION", function (status) {});
3372			$("#CHECK_MSG").modal("show");					
3373		}
3374	});
3375
3376}
3377
3378
3379function changeEDCPay(ele) {				
3380	var parts = (ele.id).split("_");
3381	var pid = parts[3];
3382	var full = parts[4];
3383	
3384	full = (full=="A") ? "AMAZON" : "CHECK";
3385	if ((trxUserBean.email_verified_flag != "Y") && (full == "AMAZON")) {
3386		RegistrationDAO.sendVerificationEmail(trxUserBean);
3387		$("#AMAZON_NOT_VERIFIED").dialog("open");				
3388	}
3389	
3390	RegistrationDAO.addPaymentOverride(trxUserBean.targetrx_id, pid, full, "EDC", ""+trxUserBean.targetrx_id, function() {			
3391	});
3392}
3393
3394function updateMailAddress() { // popup after contracting EDC
3395	var cURL = "/IRXPhysPortal/Registration/Confirmation";
3396
3397	if (validateForm()) {
3398		if ($("#PRIMARY_POSTAL_CODE").length) {
3399			trxUserBean.primary_address_line_1 = $("#PRIMARY_ADDRESS_LINE_1").val();
3400			trxUserBean.primary_address_line_2 = $("#PRIMARY_ADDRESS_LINE_2").val();
3401			trxUserBean.primary_postal_code = $("#PRIMARY_POSTAL_CODE").val();
3402			trxUserBean.primary_city_name = $("#PRIMARY_CITY_NAME").val();
3403			if ($("#PRIMARY_STATE_CODE").val()!="select") trxUserBean.primary_state_code = $("#PRIMARY_STATE_CODE").val();
3404		} else {
3405			trxUserBean.mail_address_line_1 = $("#MAIL_ADDRESS_LINE_1").val();
3406			trxUserBean.mail_address_line_2 = $("#MAIL_ADDRESS_LINE_2").val();
3407			trxUserBean.mail_postal_code = $("#MAIL_POSTAL_CODE").val();
3408			trxUserBean.mail_city_name = $("#MAIL_CITY_NAME").val();
3409			if ($("#MAIL_STATE_CODE").val()!="select") trxUserBean.mail_state_code = $("#MAIL_STATE_CODE").val();
3410		}
3411		
3412		RegistrationDAO.setUser(trxUserBean, "update", "MAIL", function (status) {
3413			window.location = cURL;
3414		});
3415	}
3416
3417}
3418
3419function handleIPResponse(response) {
3420	var logVal = response.continent_name + ", " + response.country_code2 + ", " + response.country_code3 + ", " + response.country_name + ", " + response.isp;
3421	console.log(logVal);
3422	RegistrationDAO.logSiteActivity("USER_INFO", "IP Info: " + logVal, targetrx_id);
3423}
3424

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.