var sRoot = 'https://www.internationalsight.com/'

/*============================================================================================================
HTML Function
==============================================================================================================*/

function onLoad(){		
	if (document.getElementById('lblError') != null){
		document.getElementById('rowError').style.display='';
	}
}

/*
text 
textarea 
password 
select-one 
radio 
checkbox 
submit 
select-multiple
*/


/*============================================================================================================
Form Validation Function
==============================================================================================================*/

function doCommand(sCommand, iID, bSubmit){
	//Check whether procedure name passed in call or not 	
	arrCommand = sCommand.split(":");
	if (arrCommand.length > 1){	
	    document.form1.elements["db_command"].value = arrCommand[0];		
	    document.form1.elements["db_stored_proc"].value = arrCommand[1];			    
	}else{
	    document.form1.elements["db_command"].value = sCommand;		
	    document.form1.elements["db_stored_proc"].value = '';		
	} 
	
	switch (document.form1.elements["db_command"].value) {	        
		case "delete" :
				var r = confirm('Are you sure, do you want to delete record ?');
				if (r) {
					if (iID > 0) {document.form1.elements["db_id"].value = iID;}
					document.form1.submit();
				}
				break;
		case "deleteModuleUnit" :
				var r = confirm('Are you sure, do you want to delete record ?');
				if (r) {
					if (iID > 0) {document.form1.elements["db_unit_id"].value = iID;}
					document.form1.submit();
				}
				break;
		case "shipmentdelete" :
				var r = confirm('YOU WILL BE PERMENANTLY DELETING RECORD, DO YOU CONFIRM ?');
				if (r) {
					if (iID > 0) {document.form1.elements["db_id"].value = iID;}
					document.form1.submit();
				}
				break;
		case "shipmenttempfiledelete" :
				var r = confirm('Are you sure, do you want to delete record ?');
				if (r) {
					if (iID > 0) {document.form1.elements["db_id"].value = iID;}
					document.form1.submit();
				}
				break;
	    case "shipmenttempshippingdelete" :
				var r = confirm('Are you sure, do you want to delete record ?');
				if (r) {
					if (iID > 0) {document.form1.elements["db_id"].value = iID;}
					document.form1.submit();
				}
				break;
	    case "shipmenttempfedexdelete" :
				var r = confirm('Are you sure, do you want to delete record ?');
				if (r) {
					if (iID > 0) {document.form1.elements["db_id"].value = iID;}
					document.form1.submit();
				}
				break;
		case "shipmenttemphanddeliverydelete" :
				var r = confirm('Are you sure, do you want to delete record ?');
				if (r) {
					if (iID > 0) {document.form1.elements["db_id"].value = iID;}
					document.form1.submit();
				}
				break;
	    case "shipmentfiledelete" :
				var r = confirm('Are you sure, do you want to delete record ?');
				if (r) {
					if (iID > 0) {document.form1.elements["db_id"].value = iID;}
					document.form1.submit();
				}
				break;
		case "shipmentshippingdelete" :
				var r = confirm('Are you sure, do you want to delete record ?');
				if (r) {
					if (iID > 0) {document.form1.elements["db_id"].value = iID;}
					document.form1.submit();
				}
				break;
		case "shipmentfedexdelete" :
				var r = confirm('Are you sure, do you want to delete record ?');
				if (r) {
					if (iID > 0) {document.form1.elements["db_id"].value = iID;}
					document.form1.submit();
				}
				break;
		case "shipmenthanddeliverydelete" :
				var r = confirm('Are you sure, do you want to delete record ?');
				if (r) {
					if (iID > 0) {document.form1.elements["db_id"].value = iID;}
					document.form1.submit();
				}
				break;
		case "deleteAdverseReaction" :
				var r = confirm('Are you sure, do you want to delete record ?');
				if (r) {
					if (iID > 0) {document.form1.elements["db_id"].value = iID;}
					document.form1.submit();
				}
				break;
        case "TempDelete" :
				var r = confirm('Are you sure, do you want to delete record ?');
				if (r) {
					if (iID > 0) {document.form1.elements["db_id"].value = iID;}
					document.form1.submit();
				}
				break;
								
		case "Forms" :
					document.form1.submit();
				break;
		  case "tissuetransfertomgi" :
				var r = confirm('Are you sure, do you want to transfer this tissue to MGI ?');
				if (r) {
					if (iID > 0) {document.form1.elements["db_id"].value = iID;}
					document.form1.submit();
				}
				break;	
		case "PullFromMGI" :
				var r = confirm('Are you sure, do you want to pull tissue from MGI ?');
				if (r) {
					if (iID > 0) {document.form1.elements["db_id"].value = iID;}
					document.form1.submit();
				}
				break;	
		case "deletedisposallogcomment" :
				var r = confirm('Are you sure, do you want to delete record ?');
				if (r) {
					if (iID > 0) {document.form1.elements["db_id"].value = iID;}
					document.form1.submit();
				}
				break;	
		case "deleteCriticalSupply" :
				var r = confirm('Are you sure, do you want to delete record ?');
				if (r) {
					if (iID > 0) {document.form1.elements["db_supply_id"].value = iID;}
					document.form1.submit();
				}
				break;
//		 case "tissueacceptfrommgi" :
//				var r = confirm('Are you sure, do you want to accept this tissue from MGI ?');
//				if (r) {
//					if (iID > 0) {document.form1.elements["db_tissue_id"].value = iID;}
//					document.form1.submit();
//				}else {
//				    alert('Tissue will not be sent, please contact ISR to order this tissue.');
//				} 
//				break;	
		default:
				if (bSubmit) {document.form1.submit();}
	}
}

function doDelete(oField){
    document.form1.elements["db_id"].value = document.form1.elements[oField].value;
    doCommand('delete');
}

function deleteQuizQuestion(iID, iModuleID, iModuleUnitID){
    document.form1.elements["db_id"].value = iID;
    document.form1.elements["db_module_id"].value = iModuleID;
    document.form1.elements["db_module_unit_id"].value = iModuleUnitID;
    doCommand('delete');
}

function getFTB(oFTB){	
    
	var arrFTB = oFTB.split(";");
	for (var i=0; i < arrFTB.length; i++){
		document.getElementById('_FTB_' + arrFTB[i]).value = document.getElementById(arrFTB[i]).value;
	}
		
	//document.getElementById('_FTB_' + oFTB).value = document.getElementById(oFTB).value;
}

function validateForm(oForm){
		
		var e = '';
		var r = true;				
		var arrElements = new Array();
		arrElements[0] = '';				
		// Loop through element		
		for (i = 0; i < oForm.elements.length; i++) {
			var oElement = oForm.elements[i];					
			//TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT | RESET | FILE | HIDDEN | IMAGE | BUTTON
			//REQUIRED UNDEFINED			
			//alert(oElement.type + '  ' + oElement.name + '  ' + (oElement.value == ''));				
			
//			if (oElement.attributes["required"] == undefined){
//			
//			    if (oElement.attributes["isnumber"] != undefined){
//			        if (isNaN(oElement.value)) { 
//			            e += "\n" + oElement.attributes["eMessage"].value;	
//					    r = false;	
//					}
//			    }
//			    
//			}
			
			if (oElement.attributes["required"] != undefined) {
			
					//REQUIRED 
				if (oElement.attributes["required"].value == "1" || oElement.attributes["required"].value == 1	|| oElement.attributes["required"].value == true
							|| oElement.attributes["required"].value == "required")
				{	
					//alert(oElement.type + '  ' + oElement.name + '  ' + oElement.attributes["eMessage"].value);
					
					//SWITCH
					switch ((oElement.type).toLowerCase()) {
						case "text" :											
							if (oElement.value == '')
							{									
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;
							} else {
								if (oElement.attributes["isemail"] != undefined){
									if (!isEmail(oElement.value)){
										e += "\n" + oElement.attributes["eMessage"].value;	
										r = false;	
									}
								} else if (oElement.attributes["isnumber"] != undefined){
									if (isNaN(oElement.value)) { 
										e += "\n" + oElement.attributes["eMessage"].value;	
										r = false;	
									}
								} else if (oElement.attributes["isdate"] != undefined){				
								    oElement.value = formatDate(oElement.value)							
									var sDate = oElement.value;
									if (sDate.length < 8) {
										e += "\n" + oElement.attributes["eMessage"].value;	
										r = false;	
									} else if (!isDate(sDate.substr(3,2), sDate.substr(0,2), sDate.substr(6,4))) { 
										e += "\n" + oElement.attributes["eMessage"].value;	
										r = false;	
									}									
								} else if (oElement.attributes["istime"] != undefined){
									var sTime = oElement.value;
									if (sTime.length < 5) {
										e += "\n" + oElement.attributes["eMessage"].value;	
										r = false;	
									} else if (!isTime(sTime)) { 
										e += "\n" + oElement.attributes["eMessage"].value;	
										r = false;	
									}
								}
							}										
							break;								
						case "password" :											
							if (oElement.value == '')
							{	
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;
							}											
							break;								
						case "textarea" :											
							if (oElement.value == '')
							{									
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;
							}											
							break;										
						case "select-one" : 	
							if (oElement.selectedIndex == -1 || oElement.value == "")
							{									
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;
							}		
							break;									
						case "select-multiple" : 										
							if (oElement.selectedIndex == -1)
							{									
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;
							}		
							break;									
						case "checkbox" :									
							if (!isArrayExists(arrElements, oElement.name)) {
								//alert(oElement.length + '   ' + oElement.name + '  ' + oElement.attributes["required"].value + '  ' + oElement.attributes["eMessage"].value);													
								if (!validateArrElements(eval("oForm." +  oElement.name))) {
									e += "\n" + oElement.attributes["eMessage"].value;	
									r = false;
								}		
							}		
							break;
						case "radio" :
								if (!isArrayExists(arrElements, oElement.name)) {
								//alert(oElement.length + '   ' + oElement.name + '  ' + oElement.attributes["required"].value + '  ' + oElement.attributes["eMessage"].value);													
								if (!validateArrElements(eval("oForm." +  oElement.name))) {											
									e += "\n" + oElement.attributes["eMessage"].value;												
									r = false;
								}																				
								}
								
							break;
						case "hidden" : 
							if (oElement.value == '')
							{									
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;
							} else {
								if (oElement.attributes["isemail"] != undefined){
									if (!isEmail(oElement.value)){
										e += "\n" + oElement.attributes["eMessage"].value;	
										r = false;	
									}
								} else if (oElement.attributes["isnumber"] != undefined){
									if (isNaN(oElement.value)) { 
										e += "\n" + oElement.attributes["eMessage"].value;	
										r = false;	
									}
								} else if (oElement.attributes["isdate"] != undefined){									
									var sDate = oElement.value;		
									if (sDate.length < 10) {
										e += "\n" + oElement.attributes["eMessage"].value;	
										r = false;	
									} else if (!isDate(sDate.substr(3,2), sDate.substr(0,2), sDate.substr(6,4))) { 
										e += "\n" + oElement.attributes["eMessage"].value;	
										r = false;	
									}									
								} else if (oElement.attributes["istime"] != undefined){
									var sTime = oElement.value;
									if (sTime.length < 5) {
										e += "\n" + oElement.attributes["eMessage"].value;	
										r = false;	
									} else if (!isTime(sTime)) { 
										e += "\n" + oElement.attributes["eMessage"].value;	
										r = false;	
									}
								}
							}					
							break;
						case "file" : 
							if (oElement.value == '')
							{									
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;
							}	
							break;	
					} //SWITCH	
				
					
				}	//REQUIRED 
				
				
			} //REQUIRED UNDEFINED	
			else {
				    if (oElement.value != '')
					{			
			            if (oElement.attributes["isemail"] != undefined){
							if (!isEmail(oElement.value)){
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;	
							}
						} else if (oElement.attributes["isurl"] != undefined){
							if (!isURL(oElement.value)){ 
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;	
							}
						} else if (oElement.attributes["isnumber"] != undefined){
							if (isNaN(oElement.value)) { 
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;	
							}
						} else if (oElement.attributes["isdate"] != undefined){														
						    oElement.value = formatDate(oElement.value)						    
							var sDate = oElement.value;							 
							if (sDate.length < 8) {
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;	
							} else if (!isDate(sDate.substr(3,2), sDate.substr(0,2), sDate.substr(6,4))) { 
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;	
							}									
						} else if (oElement.attributes["istime"] != undefined){
							var sTime = oElement.value;
							if (sTime.length < 5) {
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;	
							} else if (!isTime(sTime)) { 
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;	
							}
						}
					}
		    } 
			
		}	
		
		if (!r){				
			alert("The following must be completed first:\n" + e);	
		}
		
		return r;
	
	}

//Validate Search Text GO

function validateGO(){
    
    var e = "";
	var r = true;
	//alert(document.getElementById('db_search_text').value);
	document.form1.elements["db_command"].value = '';
			
	if (document.getElementById('db_search_text').value == '') {			
		e += "\nPlease enter search text";
		r = false;		
	}	
							
	if (!r){
		alert("The following must be completed first:\n" + e);	
	}
	else {
		    alert("Please wait while your request is processed...!");	
		}
	
	return r;
		
}

// Validate checkbox and radio 			
function validateArrElements(oElements){
	var arr = true;
	if (oElements.length == undefined) {
		arr = oElements.checked;
		//alert(' Checked = ' + oRadio.eMessage);	
	} else {					
		for (k = 0; k < oElements.length; k++) {
			arr = oElements[k].checked
			//alert('Radio ' + oElements[i].checked + '  ' + oElements[i].name);
			if ( arr == true ) { 							
				break; 
			}
			//alert(oElements.value);	
		}	
	}
	return arr;
}
			
// Stores Array Object Name
function isArrayExists(arrElements, sValue){
	
	var iAE = false;
	var a = 0;
	do {					
		a += 1;					
		if (arrElements[a] == sValue) {
			//alert('Array Value   : ' + i + '  ' + arrElements[i] + '   ' + sValue + '    ' + (arrElements[i] == sValue));
			iAE = true;
			break;
		}
								
	}					
	while (a < arrElements.length)
	
	if (iAE == false) { arrElements[arrElements.length] = sValue; }
						
	return iAE;	
			
}

/* Email  */
function isEmail(sEmail) {

		var at="@"
		var dot="."
		var lat=sEmail.indexOf(at)
		var lstr=sEmail.length
		var ldot=sEmail.indexOf(dot)

		
		if (sEmail.substring(ldot+1,ldot+2)=="") { return false }

		if (sEmail.indexOf(at)==-1){ return false }

		if (sEmail.indexOf(at)==-1 || sEmail.indexOf(at)==0 || sEmail.indexOf(at)==lstr){ return false }

		if (sEmail.indexOf(dot)==-1 || sEmail.indexOf(dot)==0 || sEmail.indexOf(dot)==lstr){ return false }

		if (sEmail.indexOf(at,(lat+1))!=-1){ return false }

		if (sEmail.substring(lat-1,lat)==dot || sEmail.substring(lat+1,lat+2)==dot){ return false }

		if (sEmail.indexOf(dot,(lat+2))==-1){ return false }
		
		if (sEmail.indexOf(" ")!=-1){ return false }
		
		return true	
						
}


/* Time */
function isTime(sTime) {		 
		if (isNaN(sTime.substr(0, 2)) || isNaN(sTime.substr(3, 2)) || (sTime.substr(2, 1) != ":")){
			return false;
		} else if ((sTime.substr(0, 2) < 00) || (sTime.substr(0, 2) > 23)){
			return false;
		} else if ((sTime.substr(3, 2) < 00) || (sTime.substr(3, 2) > 60)){
			return false;
		} else { return true; }
	}
	
/* Military Time */
function isMilitaryTime(sTime) {	
		if (isNaN(sTime.substr(0, 2)) || isNaN(sTime.substr(2, 2))){
			return false;
		} else if ((sTime.substr(0, 2) < 00) || (sTime.substr(0, 2) > 23)){
			return false;
		} else if ((sTime.substr(2, 2) < 00) || (sTime.substr(2, 2) > 60)){
			return false;
		} else { return true; }
	}
	

/* Date */
//function isDate(day, month, year) {
//  	// 0 - 11 Jan - Dec
//  	var dtDate = new Date(year, month - 1, day);

//  	if ((dtDate.getDate() == day) && ((dtDate.getMonth() + 1) == month) && (dtDate.getFullYear() == year)){
//  		return true;
//  	} else {return false;}
//}

function isDate(day, month, year) {
  	// 0 - 11 Jan - Dec
  	var dtDate = new Date(year, month - 1, day);  

  	if ((dtDate.getDate() == day) && ((dtDate.getMonth() + 1) == month) && 
  	                ((dtDate.getFullYear() == year) || (dtDate.getFullYear().toString().substr(2, 2) == year))){
  		return true;
  	} else {return false;}
}
 	
 /*============================================================================================================
Format Date
============================================================================================================*/
function formatDate(sDate){ 
                
            var dtDate = "";
            if (sDate.length > 0)
            {
	            var sDate,sOrgDate,ndate,sep;
                var days,months,year;
                var flag = 0;
                sOrgDate = sDate;
        	    
        	    //Extract Months
                sep = sDate.indexOf("/");
                if (sep == 2)
                {
                    months = sDate.substr(0, 2);                    
                }
                else if (sep == 1)
                {
                    months = parseInt(sDate.substr(0,sep));                    
                }                
                dtDate = assignMonth(months);
                
                //Extract Days
                sDate = sDate.substr(sep + 1);
                var val=sDate.substr(sep + 1); 
                sep = sDate.indexOf("/");        	     
                if(sep != 1 & sep != 2) 
                {
                    dtDate = "";
                }
                else
                {
                    if (sep == 2)
                    {
                        days = sDate.substr(0,2);                    
                    }
                    else if (sep == 1)
                    {
                        days = parseInt(sDate.substr(0,sep));
                    }
                    dtDate = dtDate + assignDays(days);
                }
                
                //Extract Year
                // Date fields  - The desktop has the century rollover amount at 20.  Which means that anything under 20 (00-19) will be prefixed with 20.
                //  Anything 20 and over will be prefixed with 19.
                 if (dtDate != ""){     
                        // below sep value is separator after days
                        year = sDate.substr(sep + 1);          
                        if(year > -1 && year < 10000)
                        {   
                            year = parseInt(year);
                            if ((year.toString()).length == 1) {year = "0" + year;}                            
                            if ((year.toString()).length < 4){                                
                                if(year == 0){ 
                                    year = "2000";
                                } else if (year > 0 && year < 20){                                    
                                    year = "20" + year    
                                } else {
                                    
                                    year = "19" + year    
                                }
                            }                            
                            dtDate = dtDate + year;                            
                        }
                        else
                        {
                            dtDate = "";
                        }
                }    
            }            
            return dtDate;
            
        }


        function assignDays(num)
        {   
            if(num >0 && num < 32)
            {
                if(num < 10 && (num.toString()).substring(0,1) != 0)
                {
                    num = ("0" + num + "/");
                }
                else
                {
                    num = (num + "/");
                }
            }
            else
            {
                return 0;               
            }
            
            return num;
        }

        function assignMonth(num)
        {
        
            if(num >0 && num < 13)
            {
                if(num < 10 && (num.toString()).substring(0,1) != 0)
                {
                    num = ("0" + num + "/");
                }
                else
                {
                    num = (num +"/");
                }
            }
            else
            {
                return 0;                 
            }
             
             return num;
                
        }         	

/* Days In Month */ 	
function daysInMonth(month,year) {
	var dDate = new Date(year, month, 0);
	return dDate.getDate();
} 


/*============================================================================================================
General Standard Function
==============================================================================================================*/
function chgPage(iPageID){

	if (iPageID > 0){		
		document.getElementById('db_page_id').value = iPageID;		
		document.getElementById('form1').submit(); 
	}	
}

function chgPage1(iPageID){

	if (iPageID > 0){		
		document.getElementById('db_page_id1').value = iPageID;		
		document.getElementById('form1').submit(); 
	}	
}

function chgOfferTissuePage(iPageID){

	if (iPageID > 0){		
		document.getElementById('db_page_id').value = iPageID;		
		document.getElementById('btnSubmit').click(); 
	}	
}

function submitLogin(){		
		document.getElementById('btnLogin').click(); 
}

function popupWindow(sTitle, sQuery) {	

    switch (sTitle)
    {
        //& Application("dPath") & "admin/training/certificate/attempted_quiz_list.aspx?
        case "MemberRegistration" :
                window.open(sRoot + 'general/popup_window.aspx?sType=' + sTitle, 'popUp', 'width=550,height=250,left=' + (screen.width - 550)/2 + ',top= ' + (screen.height - 250)/2 + ',scrollbars=1');
        break;
        case "EyebankRegistration" :
                window.open(sRoot + 'general/popup_window.aspx?sType=' + sTitle, 'popUp', 'width=550,height=250,left=' + (screen.width - 550)/2 + ',top= ' + (screen.height - 250)/2 + ',scrollbars=1');
        break;
        case "ESPMemberRegistration" :
                window.open(sRoot + 'esp/general/popup_window.aspx?sType=' + sTitle, 'popUp', 'width=550,height=250,left=' + (screen.width - 550)/2 + ',top= ' + (screen.height - 250)/2 + ',scrollbars=1');
        break;
        case "ESPEyebankRegistration" :
                window.open(sRoot + 'esp/general/popup_window.aspx?sType=' + sTitle, 'popUp', 'width=550,height=250,left=' + (screen.width - 550)/2 + ',top= ' + (screen.height - 250)/2 + ',scrollbars=1');
        break;
        case "OfferTissueListComment" :
                window.open(sRoot + 'admin/tissue/offer_tissue_list_comment.aspx?' + sQuery, 'popUp', 'width=500,height=300,left=' + (screen.width - 500)/2 + ',top= ' + (screen.height - 300)/2 + ',scrollbars=1');
        break;
         case "QADiscrepancyReportComment" :
                window.open(sRoot + 'admin/reports/qa_discrepancy_report_comment.aspx?' + sQuery, 'popUp', 'width=500,height=300,left=' + (screen.width - 500)/2 + ',top= ' + (screen.height - 300)/2 + ',scrollbars=1');
        break;
        case "CardExpiringNotification" :             
                window.open(sRoot + 'admin/member/card_expiring_notification_send.aspx', 'popUp', 'width=400,height=250,left=' + (screen.width - 400)/2 + ',top= ' + (screen.height - 250)/2 + ',scrollbars=1');                
        break; 
        case "EditShippingDetails" :                
                window.open(sRoot + 'admin/shipment/edit_shipping_details.aspx?' + sQuery, 'popUp', 'width=450,height=400,left=' + (screen.width - 450)/2 + ',top= ' + (screen.height - 400)/2 + ',scrollbars=1');                
        break;     
        case "TrainingModuleCertificate" :
                window.open(sRoot + 'admin/training/certificate/certificate.aspx?' + sQuery, 'popUp', 'width=680,height=480,left=' + (screen.width - 680)/2 + ',top= ' + (screen.height - 480)/2 + ',scrollbars=1');                
        break;         
        case "AttemptedQuizList" :
                window.open(sRoot + 'admin/training/certificate/attempted_quiz_list.aspx?' + sQuery, 'popUp', 'width=680,height=480,left=' + (screen.width - 680)/2 + ',top= ' + (screen.height - 480)/2 + ',scrollbars=1');                                
        break;
        case "Quiz" :
                window.open(sRoot + 'admin/training/quiz/quiz.aspx?' + sQuery, 'popUp');
        break;         
        case "QuizView" :
                window.open(sRoot + 'admin/training/certificate/quiz_view.aspx?' + sQuery, 'popUp');                                
        break;         
        case "NextOfKin" :
                window.open(sRoot + 'admin/referral/next_of_kin.aspx?' + sQuery, 'popUp', 'width=480,height=500,left=' + (screen.width - 500) / 2 + ',top= ' + (screen.height - 525) / 2 + ',scrollbars=1');
        break;  
        case "DeferralForm" :
                window.open(sRoot + 'admin/referral/deferral.aspx?' + sQuery, 'popUp', 'width=480,height=650,left=' + (screen.width - 500) / 2 + ',top= ' + (screen.height - 525) / 2 + ',scrollbars=1');
        break;         
        case "BloodSample" :
                window.open(sRoot + 'admin/referral/procurement/edit_blood_sample.aspx?' + sQuery, 'popUp', 'width=530,height=600,left=' + (screen.width - 500) / 2 + ',top= ' + (screen.height - 525) / 2 + ',scrollbars=1');
        break;         
        case "Edit Comment" :
                window.open(sRoot + 'admin/referral/pre_distribution/edit_comment.aspx?' + sQuery, 'popUp', 'width=450,height=300,left=' + (screen.width - 680) / 2 + ',top= ' + (screen.height - 480) / 2 + ',scrollbars=0');
        break;  
	 case "Edit Comment Autopsy" :
                window.open(sRoot + 'admin/referral/pre_distribution/edit_comment_autopsy.aspx?' + sQuery, 'popUp', 'width=450,height=300,left=' + (screen.width - 680) / 2 + ',top= ' + (screen.height - 480) / 2 + ',scrollbars=0');
        break; 
   }
}

function showCertificatepopup(sTitle, sQuery) {	
        
    if (sTitle == 'member'){
            window.open(sRoot + 'member/view_certificate.aspx?' + sQuery, 'popUp', 'width=700,height=500,left=' + (screen.width - 700)/2 + ',top= ' + (screen.height - 550)/2 + ',scrollbars=1,menubar=1');
        } else {
            window.open(sRoot + 'admin/member/certificate/view.aspx?' + sQuery, 'popUp', 'width=700,height=500,left=' + (screen.width - 700)/2 + ',top= ' + (screen.height - 550)/2 + ',scrollbars=1,menubar=1');
        }
}

function printForm(sForm) {
	//window.open(sRoot + 'download/print.aspx?' + sForm, 'printForm', 'width=750,height=600,scrollbars=1');
	window.open(sRoot + 'download/print.aspx?' + sForm, 'printForm', 'width=750,height=600,left=' + (screen.width - 750)/2 + ',top= ' + (screen.height - 600)/2 + ',scrollbars=1');
}

function printProcurementSummary(sForm) {
	//window.open(sRoot + 'download/print.aspx?' + sForm, 'printForm', 'width=750,height=600,scrollbars=1');
	window.open(sRoot + 'download/print.aspx?' + sForm, 'printForm', 'width=1000,height=800,left=' + (screen.width - 1000)/2 + ',top= ' + (screen.height - 800)/2 + ',scrollbars=1');
}

function printMedicalHistorySummary(sForm) {
	//window.open(sRoot + 'download/print.aspx?' + sForm, 'printForm', 'width=750,height=600,scrollbars=1');
	window.open(sRoot + 'download/print.aspx?' + sForm, 'printForm', 'width=1000,height=800,left=' + (screen.width - 1000)/2 + ',top= ' + (screen.height - 800)/2 + ',scrollbars=1');
}

function printEvaluationForm(sForm) {
	//window.open(sRoot + 'download/print.aspx?' + sForm, 'printForm', 'width=750,height=600,scrollbars=1');
	window.open(sRoot + 'download/print.aspx?' + sForm, 'printForm', 'width=950,height=800,left=' + (screen.width - 950)/2 + ',top= ' + (screen.height - 800)/2 + ',scrollbars=1');
}

function printEvaluationPrintLabel(sForm) {
	//window.open(sRoot + 'download/print.aspx?' + sForm, 'printForm', 'width=750,height=600,scrollbars=1');
	window.open(sRoot + 'download/print.aspx?' + sForm, 'printForm', 'width=650,height=130,left=' + (screen.width - 650)/2 + ',top= ' + (screen.height - 130)/2 + ',scrollbars=1');
}

function printReport(sForm) {
	window.open(sRoot + 'admin/reports/reports.aspx?' + sForm, 'printForm', 'width=900,height=600,scrollbars=1');
}

function printAllForm(sForm, sQuery) {
    if (sForm == 'Recipient'){
        window.open(sRoot + 'reports/recipient_list.aspx?' + sQuery, 'printForm', 'width=750,height=600,left=' + (screen.width - 750)/2 + ',top= ' + (screen.height - 600)/2 + ',scrollbars=1');
    } else {
        window.open(sRoot + 'reports/post_operative_list.aspx?' + sQuery, 'printForm', 'width=750,height=600,left=' + (screen.width - 750)/2 + ',top= ' + (screen.height - 600)/2 + ',scrollbars=1');
    }
}

function closePopup() {
  //  alert(opener.location.href);
    opener.location.href = opener.location.href;
    self.close();   
}
function selectData(oID, sID, oDescription, sDescription){
	
	if (oID != ''){
	    document.form1.elements[oID].value = sID;		
	}
	if (oDescription != ''){
	    document.form1.elements[oDescription].value = sDescription;		
	}    
	
}

function showDetails(rowID) {
    if(document.getElementById(rowID).style.display == ''){
        document.getElementById(rowID).style.display = 'none';
    } else { 
        document.getElementById(rowID).style.display = '';
    }	
}
function showHideDetails(ShowrowID, HiderowID) {
	
	if(document.getElementById(ShowrowID).style.display == ''){
        document.getElementById(ShowrowID).style.display = 'none';
        
    } else { 
        document.getElementById(ShowrowID).style.display = '';
        document.getElementById(HiderowID).style.display = 'none';
    }	
}


/* Age Calculate */ 	
function GetAge(sDate, sDate2)
   {
   var dtAsOfDate;
   var dtBirth;
   var dtAnniversary;
   var intSpan;
   var intYears;
   var intMonths;
   var intWeeks;
   var intDays;
   var intHours;
   var intMinutes;
   var intSeconds;
   var strHowOld;

   // get born date
      
   dtBirth = new Date(sDate.substr(6,4), (sDate.substr(0,2) - 1), sDate.substr(3,2));
   
   // get as of date
   if(sDate2 == undefined){
        dtAsOfDate = new Date();
   } else {
        dtAsOfDate = new Date(sDate2.substr(6,4), (sDate2.substr(0,2) - 1), sDate2.substr(3,2));
   }
   

   // if as of date is on or after born date
   if ( dtAsOfDate >= dtBirth )
      {

      // get time span between as of time and birth time
      intSpan = ( dtAsOfDate.getUTCHours() * 3600000 +
                  dtAsOfDate.getUTCMinutes() * 60000 +
                  dtAsOfDate.getUTCSeconds() * 1000    ) -
                ( dtBirth.getUTCHours() * 3600000 +
                  dtBirth.getUTCMinutes() * 60000 +
                  dtBirth.getUTCSeconds() * 1000       )

      // start at as of date and look backwards for anniversary 

      // if as of day (date) is after birth day (date) or
      //    as of day (date) is birth day (date) and
      //    as of time is on or after birth time
      if ( dtAsOfDate.getUTCDate() > dtBirth.getUTCDate() ||
           ( dtAsOfDate.getUTCDate() == dtBirth.getUTCDate() && intSpan >= 0 ) )
         {

         // most recent day (date) anniversary is in as of month
         dtAnniversary = 
            new Date( Date.UTC( dtAsOfDate.getUTCFullYear(),
                                dtAsOfDate.getUTCMonth(),
                                dtBirth.getUTCDate(),
                                dtBirth.getUTCHours(),
                                dtBirth.getUTCMinutes(),
                                dtBirth.getUTCSeconds() ) );

         }

      // if as of day (date) is before birth day (date) or
      //    as of day (date) is birth day (date) and
      //    as of time is before birth time
      else
         {

         // most recent day (date) anniversary is in month before as of month
         dtAnniversary = 
            new Date( Date.UTC( dtAsOfDate.getUTCFullYear(),
                                dtAsOfDate.getUTCMonth() - 1,
                                dtBirth.getUTCDate(),
                                dtBirth.getUTCHours(),
                                dtBirth.getUTCMinutes(),
                                dtBirth.getUTCSeconds() ) );

         // get previous month
         intMonths = dtAsOfDate.getUTCMonth() - 1;
         if ( intMonths == -1 )
            intMonths = 11;

         // while month is not what it is supposed to be (it will be higher)
         while ( dtAnniversary.getUTCMonth() != intMonths )

            // move back one day
            dtAnniversary.setUTCDate( dtAnniversary.getUTCDate() - 1 );

         }

      // if anniversary month is on or after birth month
      if ( dtAnniversary.getUTCMonth() >= dtBirth.getUTCMonth() )
         {

         // months elapsed is anniversary month - birth month
         intMonths = dtAnniversary.getUTCMonth() - dtBirth.getUTCMonth();

         // years elapsed is anniversary year - birth year
         intYears = dtAnniversary.getUTCFullYear() - dtBirth.getUTCFullYear();

         }

      // if birth month is after anniversary month
      else
         {

         // months elapsed is months left in birth year + anniversary month
         intMonths = (11 - dtBirth.getUTCMonth()) + dtAnniversary.getUTCMonth() + 1;

         // years elapsed is year before anniversary year - birth year
         intYears = (dtAnniversary.getUTCFullYear() - 1) - dtBirth.getUTCFullYear();

         }

      // to calculate weeks, days, hours, minutes and seconds
      // we can take the difference from anniversary date and as of date

      // get time span between two dates in milliseconds
      intSpan = dtAsOfDate - dtAnniversary;

      // get number of weeks
      intWeeks = Math.floor(intSpan / 604800000);

      // subtract weeks from time span
      intSpan = intSpan - (intWeeks * 604800000);
      
      // get number of days
      intDays = Math.floor(intSpan / 86400000);

      // subtract days from time span
      intSpan = intSpan - (intDays * 86400000);

      // get number of hours
      intHours = Math.floor(intSpan / 3600000);
    
      // subtract hours from time span
      intSpan = intSpan - (intHours * 3600000);

      // get number of minutes
      intMinutes = Math.floor(intSpan / 60000);

      // subtract minutes from time span
      intSpan = intSpan - (intMinutes * 60000);

      // get number of seconds
      intSeconds = Math.floor(intSpan / 1000);

      // create output string     
      if ( intYears > 0 )
         if ( intYears > 1 )
            strHowOld = intYears.toString() + ' Years';
         else
            strHowOld = intYears.toString() + ' Year';
      else
         strHowOld = '';

      if ( (intMonths > 0) && (strHowOld == ''))
         if ( intMonths > 1 )
            strHowOld = strHowOld + ' ' + intMonths.toString() + ' Months';
         else
            strHowOld = strHowOld + ' ' + intMonths.toString() + ' Month';
           
      if ( (intWeeks > 0) && (strHowOld == ''))
         if ( intWeeks > 1 )
            strHowOld = strHowOld + ' ' + intWeeks.toString() + ' Weeks';
         else
            strHowOld = strHowOld + ' ' + intWeeks.toString() + ' Week';

      if ( (intDays > 0) && (strHowOld == ''))
         if ( intDays > 1 )
            strHowOld = strHowOld + ' ' + intDays.toString() + ' Days';
         else
            strHowOld = strHowOld + ' ' + intDays.toString() + ' Day';

      if ( (intHours > 0) && (strHowOld == ''))
         if ( intHours > 1 )
            strHowOld = strHowOld + ' ' + intHours.toString() + ' Hours';
         else
            strHowOld = strHowOld + ' ' + intHours.toString() + ' Hour';
 
      if ( (intMinutes > 0) && (strHowOld == ''))
         if ( intMinutes > 1 )
            strHowOld = strHowOld + ' ' + intMinutes.toString() + ' Minutes';
         else
            strHowOld = strHowOld + ' ' + intMinutes.toString() + ' Minute';

      if ( (intSeconds > 0) && (strHowOld == '') )
         if ( intSeconds > 1 )
            strHowOld = strHowOld + ' ' + intSeconds.toString() + ' Seconds';
         else
            strHowOld = strHowOld + ' ' + intSeconds.toString() + ' Second';

      }
   else
      strHowOld = 'Not Born Yet'

   // return string representation
   return strHowOld
}   

/* Age Calculate */ 	
function GetAgeYear(sDate, sDate2)
   {
   var dtAsOfDate;
   var dtBirth;
   var dtAnniversary;
   var intSpan;
   var intYears;
   var intMonths;
   var intWeeks;
   var intDays;
   var intHours;
   var intMinutes;
   var intSeconds;
   var strHowOld;

   // get born date
      
   dtBirth = new Date(sDate.substr(6,4), (sDate.substr(0,2) - 1), sDate.substr(3,2));
   
   // get as of date
   if(sDate2 == undefined){
        dtAsOfDate = new Date();
   } else {
        dtAsOfDate = new Date(sDate2.substr(6,4), (sDate2.substr(0,2) - 1), sDate2.substr(3,2));
   }
   

   // if as of date is on or after born date
   if ( dtAsOfDate >= dtBirth )
      {

      // get time span between as of time and birth time
      intSpan = ( dtAsOfDate.getUTCHours() * 3600000 +
                  dtAsOfDate.getUTCMinutes() * 60000 +
                  dtAsOfDate.getUTCSeconds() * 1000    ) -
                ( dtBirth.getUTCHours() * 3600000 +
                  dtBirth.getUTCMinutes() * 60000 +
                  dtBirth.getUTCSeconds() * 1000       )

      // start at as of date and look backwards for anniversary 

      // if as of day (date) is after birth day (date) or
      //    as of day (date) is birth day (date) and
      //    as of time is on or after birth time
      if ( dtAsOfDate.getUTCDate() > dtBirth.getUTCDate() ||
           ( dtAsOfDate.getUTCDate() == dtBirth.getUTCDate() && intSpan >= 0 ) )
         {

         // most recent day (date) anniversary is in as of month
         dtAnniversary = 
            new Date( Date.UTC( dtAsOfDate.getUTCFullYear(),
                                dtAsOfDate.getUTCMonth(),
                                dtBirth.getUTCDate(),
                                dtBirth.getUTCHours(),
                                dtBirth.getUTCMinutes(),
                                dtBirth.getUTCSeconds() ) );

         }

      // if as of day (date) is before birth day (date) or
      //    as of day (date) is birth day (date) and
      //    as of time is before birth time
      else
         {

         // most recent day (date) anniversary is in month before as of month
         dtAnniversary = 
            new Date( Date.UTC( dtAsOfDate.getUTCFullYear(),
                                dtAsOfDate.getUTCMonth() - 1,
                                dtBirth.getUTCDate(),
                                dtBirth.getUTCHours(),
                                dtBirth.getUTCMinutes(),
                                dtBirth.getUTCSeconds() ) );

         // get previous month
         intMonths = dtAsOfDate.getUTCMonth() - 1;
         if ( intMonths == -1 )
            intMonths = 11;

         // while month is not what it is supposed to be (it will be higher)
         while ( dtAnniversary.getUTCMonth() != intMonths )

            // move back one day
            dtAnniversary.setUTCDate( dtAnniversary.getUTCDate() - 1 );

         }

      // if anniversary month is on or after birth month
      if ( dtAnniversary.getUTCMonth() >= dtBirth.getUTCMonth() )
         {

         // months elapsed is anniversary month - birth month
         intMonths = dtAnniversary.getUTCMonth() - dtBirth.getUTCMonth();

         // years elapsed is anniversary year - birth year
         intYears = dtAnniversary.getUTCFullYear() - dtBirth.getUTCFullYear();

         }

      // if birth month is after anniversary month
      else
         {

         // months elapsed is months left in birth year + anniversary month
         intMonths = (11 - dtBirth.getUTCMonth()) + dtAnniversary.getUTCMonth() + 1;

         // years elapsed is year before anniversary year - birth year
         intYears = (dtAnniversary.getUTCFullYear() - 1) - dtBirth.getUTCFullYear();

         }

      // to calculate weeks, days, hours, minutes and seconds
      // we can take the difference from anniversary date and as of date

      // get time span between two dates in milliseconds
      intSpan = dtAsOfDate - dtAnniversary;

      // get number of weeks
      intWeeks = Math.floor(intSpan / 604800000);

      // subtract weeks from time span
      intSpan = intSpan - (intWeeks * 604800000);
      
      // get number of days
      intDays = Math.floor(intSpan / 86400000);

      // subtract days from time span
      intSpan = intSpan - (intDays * 86400000);

      // get number of hours
      intHours = Math.floor(intSpan / 3600000);
    
      // subtract hours from time span
      intSpan = intSpan - (intHours * 3600000);

      // get number of minutes
      intMinutes = Math.floor(intSpan / 60000);

      // subtract minutes from time span
      intSpan = intSpan - (intMinutes * 60000);

      // get number of seconds
      intSeconds = Math.floor(intSpan / 1000);

      // create output string     
      if ( intYears > 0 )
         if ( intYears > 1 )
            strHowOld = intYears.toString();
         else
            strHowOld = intYears.toString();
      else
         strHowOld = 0;

      }
   else
      strHowOld = 0;

   // return string representation
   return strHowOld
}   
   
/*============================================================================================================
ISR Specific General Functions
==============================================================================================================*/   
function generateDate(oAge){
    var sDate = document.getElementById('db_birth_month').value + '/' + document.getElementById('db_birth_day').value + '/' + document.getElementById('db_birth_year').value;
    if (isDate(sDate.substr(3,2), sDate.substr(0,2), sDate.substr(6,4))){                 
        oAge.value = GetAge(sDate);
    } else {
        oAge.value = '';
    }   
}

function referralAge(oAge){
    var sDate = document.getElementById('db_date_of_birth_month').value + '/' + document.getElementById('db_date_of_birth_day').value + '/' + document.getElementById('db_date_of_birth_year').value;
    var sDate2 = document.getElementById('db_date_of_death_month').value + '/' + document.getElementById('db_date_of_death_day').value + '/' + document.getElementById('db_date_of_death_year').value;
    if (isDate(sDate.substr(3,2), sDate.substr(0,2), sDate.substr(6,4)) && isDate(sDate2.substr(3,2), sDate2.substr(0,2), sDate2.substr(6,4))){                 
        //oAge.value = GetAge(sDate, sDate2);
        //sDate = new Date(sDate.substr(6,4), (sDate.substr(0,2) - 1), sDate.substr(3,2));
        //sDate2 = new Date(sDate2.substr(6,4), (sDate2.substr(0,2) - 1), sDate2.substr(3,2));
        //var ONE_DAY = 1000 * 60 * 60 * 24 * 365

    // Convert both dates to milliseconds
    //var date1_ms = sDate.getTime();
    //var date2_ms = sDate2.getTime();

    // Calculate the difference in milliseconds
    //var difference_ms = Math.abs(date2_ms - date1_ms);
    // Convert back to days and return
    //oAge.value = Math.round(difference_ms/ONE_DAY);
    oAge.value = GetAgeYear(sDate, sDate2);
    
    } else {
        oAge.value = '';
    }   
}

function ToDate(value) {

var dateItems = value.split (/(\/|-|\.)/);
var month = parseInt(dateItems[0],10)-1;
var day = parseInt (dateItems[1],10);
var year = parseInt(dateItems[2],10);

var dtTest = new Date (year, month, day);

return dtTest;
}


function showAvailableTissuePremiumEyebank(){
    var r = true;
    var r = confirm('You are entering into a national registry of available premium corneas that are currently available for domestic and international surgeons who can reimburse the normal processing fees of the eye banks which range from 2000USD to 3000USD. Click OK to proceed or Cancel to exit.');
		if (r) {
			    window.location = sRoot + 'member/tissue/premium_cornea_list.aspx';	
			}
}

/*
    Update Date
*/
function validatePatientData(){
    var dtDOB = document.getElementById('db_birth_month').value + '/' + document.getElementById('db_birth_day').value + '/' + document.getElementById('db_birth_year').value; 
    document.getElementById('db_birth_date').value = dtDOB;
    var dtDOS = document.getElementById('db_surgery_month').value + '/' + document.getElementById('db_surgery_day').value + '/' + document.getElementById('db_surgery_year').value; 
    document.getElementById('db_surgery_date').value = dtDOS;
    var e = "";
	var r = validateForm(document.form1);
	
	if (r){
	        dtDOB = formatDate(dtDOB);							
			var sBirthDate = dtDOB;
			if (sBirthDate.length < 8) {
				e += "\nPlease enter birth date.";	
				r = false;	
			} else if (!isDate(sBirthDate.substr(3,2), sBirthDate.substr(0,2), sBirthDate.substr(6,4))) { 
				e += "\nPlease enter birth date.";	
				r = false;	
			}				
			dtDOS = formatDate(dtDOS);
			var sSurgeryDate = dtDOS;
			if (sSurgeryDate.length < 8) {
				e += "\nPlease enter surgery date.";	
				r = false;	
			} else if (!isDate(sSurgeryDate.substr(3,2), sSurgeryDate.substr(0,2), sSurgeryDate.substr(6,4))) { 
				e += "\nPlease enter surgery date.";	
				r = false;	
			}			
		   if (document.getElementById('db_country').value == 0)
                {
		            e += "\nPlease select a country."; 
                    r = false;
		        }
		     if (!r){				
			    alert("The following must be completed first:\n" + e);	
		        }

            }
	    return r;
}

   
//Auto Time Out After 13 hours of logging
function setEmployeeStopTime(){
        var r = confirm('Please click "OK" to stay logged in or the system will log the person out automatically.');
		window.location = sRoot + 'admin/timesheet/set_employee_stop_time.aspx?extend_stop_time=' + r;			
}

/*============================================================================================================
Start Skype exists on system or not
==============================================================================================================*/


var activex = ((navigator.userAgent.indexOf('Win')  != -1) && (navigator.userAgent.indexOf('MSIE') != -1) && (parseInt(navigator.appVersion) >= 4 ));
var CantDetect = ((navigator.userAgent.indexOf('Safari')  != -1) || (navigator.userAgent.indexOf('Opera')  != -1));

function oopsPopup() {
    if((navigator.language && navigator.language.indexOf("ja") != -1) || (navigator.systemLanguage && navigator.systemLanguage.indexOf("ja") != -1) || (navigator.userLanguage && navigator.userLanguage.indexOf("ja") != -1)) {
        var URLtoOpen = sRoot + "livechat/skype.aspx";
    } else {
        var URLtoOpen = sRoot + "livechat/skype.aspx";
    }
	var windowName = "oops";
	var popW = 522, popH = 289;
	var scrollB = 'no';
	w = screen.availWidth;
	h = screen.availHeight;
	var leftPos = (w-popW)/2, topPos = (h-popH)/2;
	oopswindow = window.open(URLtoOpen, windowName,'width=' + popW + ',height=' + popH + ',scrollbars=' + scrollB + ',screenx=' +leftPos +',screeny=' +topPos +',top=' +topPos +',left=' +leftPos);
	return false;
}

if(typeof(detected) == "undefined" && activex) {
    document.write(
        ['<script language="VBscript">',
        'Function isSkypeInstalled()',
        'on error resume next',
        'Set oSkype = CreateObject("Skype.Detection")',
        'isSkypeInstalled = IsObject(oSkype)',
        'Set oSkype = nothing',
        'End Function',
        '</script>'].join("\n")
    );
}


function skypeCheck() {
    if(CantDetect) {
        return true;
    } else if(!activex) {
        var skypeMime = navigator.mimeTypes["application/x-skype"];
        detected = true;
        if(typeof(skypeMime) == "object") {
            return true;
        } else {
            return oopsPopup();
        }
    } else {
        if(isSkypeInstalled()) {
            detected = true;
            return true;
        }
    }
    detected = true;
    return oopsPopup();
}

function loadDetection() {
    if(document.getElementById && document.getElementsByTagName) {
        if (window.addEventListener) window.addEventListener('load', addDetection, false);
        else if (window.attachEvent) window.attachEvent('onload', addDetection);
    }
}

function addDetection() {
    var pageLinks = document.getElementsByTagName("a");
    for (var i=0; i < pageLinks.length; i++) {
        if(pageLinks[i].childNodes[0] && pageLinks[i].childNodes[0].src) {
            if((pageLinks[i].childNodes[0].src.indexOf('download.skype.com\/share\/skypebuttons') != -1 || pageLinks[i].childNodes[0].src.indexOf('mystatus.skype.com') != -1) && (typeof(pageLinks[i].onclick) == "undefined" || pageLinks[i].onclick == null)) {
                pageLinks[i].onclick = function sChk() { return skypeCheck(); }
            }
        }
    }
}

loadDetection();

/*============================================================================================================
End Skype exists on system or not
==============================================================================================================*/
