﻿var tempargs;
AjaxPro.timeoutPeriod = 40*1000;
AjaxPro.onTimeout = handleTimeout; 
var frmError = "<img src='images/cn_form_error.gif' />";
var frmOk = "<img src='images/cn_form_ok.gif' />";

function handleTimeout(ms,req)
{
    //alert("Sorry there was an internal error.");
    var answer = confirm("There was an internal error. Do you want to try again?");
    if(answer)
    {
        checkForDuplicateEmailAddress(null, tempargs);
    }
    else 
    {
        document.getElementById("warn_email").innerHTML = frmError;
        return;
    } 
}
// This file is used by the ForgotLogin.aspx files
var email;
 // Ajax method to check for pre-existing email address 
 function checkForDuplicateEmailAddress(sender, args)
 {
    var image_path = document.getElementById('warn_email').innerHTML;
    if((image_path.match('images/cn_form_ok.gif')) && (args.Value == tempargs.Value))
    {
        
    }
    else 
    {
        tempargs = args;
        //showLayer("warn_email","<img src='images/ajax_loading_sq.gif' border='0' />");
        
        //try 
            //{
           //hideLayer("emailmsg");
           changeButtonText();
           showLayer("emailmsg","<span class='membership_errors'>Checking <img src='images/ajax_loading_sq.gif' border='0' /></span>");
           Membership.CheckEmailAvailability(args.Value,checkForDuplicateEmailAddress_CallBack);
           if(email != null)
            {
             if(email == '0')
                {
                    args.IsValid = true;
                }
                else 
                {
                    args.IsValid = false;
                }
            }   
        //} 
        //catch(ex)
        //{
        //    alert("checkuser "+ex);
        //}
    }   
	
 }
 
 // The Ajax response method to check for duplicate email address
 function checkForDuplicateEmailAddress_CallBack(response)
 {
           var ds = response.value;
           changeButtonTextToOriginal();
           
		   if(ds!=null && typeof(ds) == "object" && ds.Tables!=null) 
	        {
		        var s = new Array();
		        switch (ds.Tables[0].Rows[0].status)
		        {
                case "0":
                            { 
                                //s[s.length] = "The Email Address is avaliable";
                                hideLayer("emailmsg");
                                showLayer("warn_email",frmOk);
                                email = '0';
                                break;
                            }
                case "1":
                            { 
                                showLayer("emailmsg","<span class='membership_errors' >There is a pending registration on this email address.  Please click <a href=# onclick='sendConfirmation();'>here</a> if you wish to receive another registration confirmation request emai.</span>");
                                showLayer("warn_email",frmError);
                                email = '1';
                                break;
                            }
                case "2":
                            { 
                                showLayer("emailmsg","<span class='membership_errors' >There is a pending request for this email address. Login information cannot be retrived for this email address.</span>");
                                showLayer("warn_email",frmError);
                                email = '1';
                                break;
                            }
                case "3":
                            { 
                                showLayer("emailmsg","<span class='membership_errors' >There was an internal error.Please try again later.</span>");
                                showLayer("warn_email",frmError);
                                email = '1';
                                break;
                            }
                case "4":
                            { 
                                //s[s.length] = "<span class='required'>Please enter an email address.</span>";
                                email = '0';
                                break;
                            }
                case "5":
                            { 
                                //s[s.length] = "<span class='required'>This is an unregistered email address. Click <a href='Join.aspx?email="+ds.Tables[0].Rows[0].Email+"' >here</a> If you wish to register this email address.</span>";
                                showLayer("emailmsg","<span class='membership_errors' >This is not a registered email address.  Please try again.</span>");
                                showLayer("warn_email",frmError);
                                email = '1';
                                break;
                            }            
                
                default: 
                            {
                                 showLayer("emailmsg","<span class='membership_errors' >There was an internal error.Please try again later.</span>");
                                 showLayer("warn_email",frmError);
                                 email = '1';
                                 break;
                            }
                }              			
		       
	        }	 
 }
 
 // Ajax method to send email using EMI web services if previous unconfirmed regsitration is found.
 function sendConfirmation()
 {
    //try 
    //{
        var email = document.getElementById(emailaddressid).value;
        var spath = window.location.href;
        var spage = spath.substring(spath.lastIndexOf('/') + 1);
        var snewpath = spath.replace(spage,emailconfirmationpage);
        Membership.SendEmailAjax(email,snewpath,replyemailaddress,websitename,sendConfirmation_CallBack);
    //} 
    //catch(ex)
    //{
    //    alert(ex);
    //}
 }
 
 // The Ajax response method after sending the email.
 function sendConfirmation_CallBack(response)
 {
    var ds = response.value;
     if(ds!=null && typeof(ds) == "object" && ds.Tables!=null) 
	 {         
       showLayer(registrationformid,"<div class='content'><div class='form_column_inner'>An email requesting registration confirmation is sent.<br/><a href='index.aspx' target='_self' >Click here to return to the home page.</a></div></div>");   
     }
 }
 
function showLayer(name,msg)
{
    document.getElementById(name).className = "showMsg";
    document.getElementById(name).innerHTML = msg;
}
function hideLayer(name)
{
     document.getElementById(name).className = "hideMsg";     
}
 
function changeButtonText()
{
   document.getElementById(btnSubmitId).src = "images/processing_wait.gif";     
}

function changeButtonTextToOriginal()
{
   document.getElementById(btnSubmitId).src = "images/form_submit.gif";     
}

