﻿function ProcessClassClick(row)
{
    if (row.id != '')
	{
    toggleLayer('classprocessingimage2');
    rows = row.parentNode.childNodes;
    var shading = "odd";
	for ( var i=0; i < rows.length; i++)
	{
	    if (shading == "odd")
	        {
	        rows[i].className = "TableRow";
	        shading = "even";
	        }
	    else
	        {
	        rows[i].className = "AlternateTableRow";
	        shading = "odd";
	        }
		
	}
	
	row.className = 'TableRowSelect';
	
	
	SitecoreWebsite.SOLI_Interior_Class_Sublayout.GetClassInfo(row.id, processEvent);
	}
}

         
function LoadEventClassInfo(EventID)
{
if (EventID != '')
{
toggleLayer('classprocessingimage2');
//SitecoreWebsite.SOLI_Interior_Class_Sublayout.GetClassInfo(EventID, processEvent);
showRegister();
}
}






 function processEvent(res)
        {
        toggleLayer('classprocessingimage2');
        if (res.error != null)
        {
            
          document.getElementById('ErrorMessage').innerHTML = "<hr/>Your request was not processed for the following reason:<li>" + res.error.Message + "</li>";
          return;
        }
        else
        {
         
            if (res.value != null)
               {                       
               var EventInfo = res.value;        
               
               if (typeof(EventInfo) == "object")
                {
                 try{
	                if ( ie6 ){ 
		                document.styleSheets[0].disabled = true;
		                document.styleSheets[0].disabled = false;
	                }
	                }
	                catch(e){}
                
                
                document.getElementById("RowId").value = "";
                document.getElementById('EventTitle').innerHTML = "";
                document.getElementById('EventDateTime').innerHTML = "";
                document.getElementById('EventDate').value = "";
                document.getElementById('EventLocation').innerHTML = "";
                document.getElementById('EventVenue').innerHTML = "";
                document.getElementById('EventRegistrationFees').innerHTML = "";
                document.getElementById('EventInstructors').innerHTML = "";
                document.getElementById('EventPrice').innerHTML = "";
                document.getElementById('EventDrivingInstructions').innerHTML = "";
                document.getElementById('EventComments').innerHTML = "";
                
                document.getElementById('EventTitle').innerHTML = EventInfo.Title; 
                document.getElementById('EventDateTime').innerHTML = EventInfo.DateTime; 
                document.getElementById('EventDate').value = EventInfo.StartDate; 
                document.getElementById('EventLocation').innerHTML = EventInfo.Location; 
                document.getElementById('EventVenue').innerHTML = EventInfo.Venue; 
                document.getElementById('EventRegistrationFees').innerHTML = EventInfo.RegistrationFees; 
                document.getElementById('EventInstructors').innerHTML = EventInfo.Instructors; 
                
                document.getElementById('EventPrice').innerHTML = "<table><tr><td style='width:110px;'>Member:</td><td>" + EventInfo.MemberFee + "</td></tr><tr><td  style='width:110px;'>Non Member:</td><td>" + EventInfo.NonMemberFee + "</td></tr></table>"; 
                document.getElementById('EventDrivingInstructions').innerHTML = EventInfo.DrivingInstructions; 
                document.getElementById('EventComments').innerHTML = EventInfo.Comments; 
                
               
                
                
                if (EventInfo.Status == "Executing")
                    {
                        document.getElementById("RowId").value = EventInfo.RowId;
                        document.getElementById('RegisterTitle').innerHTML = "" + EventInfo.Title + "";
                        //document.getElementById('RegisterDate').innerHTML = "" + EventInfo.StartDate + "";
                        document.getElementById('RegisterDate').innerHTML = "" + EventInfo.StartDate + " - " + EventInfo.EndDate + ""; 
    
                        if (document.getElementById('EventDate') != null)
                             document.getElementById('EventDate').value = EventInfo.StartDate;
                            
                        
                                 
                        var selects = document.getElementsByTagName('select');
                        
                        
                        for ( var i=0; i < selects.length; i++)
                        {
                        if (selects[i].id.indexOf('Price') > 0)
                            {
                            selects[i].options.length = 0;
                            selects[i].options[0] = new Option('','');
                            selects[i].options[1] = new Option(EventInfo.MemberFee + ' - Member'  ,'Member');
                            selects[i].options[2] = new Option(EventInfo.NonMemberFee + ' - Non Member'  ,'NonMember');
                            }
                        }
                    }
                //this references a function from the soli interior class sublayout
                showCenter(window.center({width:500,height:450}))
               }
           }
        else
           {
           document.getElementById('ErrorMessage').innerHTML = "Test, There was an error processing this request.";
          
           }
        }
        }





function showRegister(EventID)
{
if (EventID != "")
{
var grid  = document.getElementById('ClassDetails');
grid.style.display = "none";

if (EventID==undefined)
    {EventID = document.getElementById('RowId').value;}

SitecoreWebsite.SOLI_Interior_Class_Sublayout.GetClassInfo(EventID, processRegEvent);
}
}




 function processRegEvent(res)
        {
        toggleLayer('classprocessingimage2');
        if (res.error != null)
        {
            
          document.getElementById('ErrorMessage').innerHTML = "<hr/>Your request was not processed for the following reason:<li>" + res.error.Message + "</li>";
          return;
        }
        else
        {
         
            if (res.value != null)
               {                       
               var EventInfo = res.value;        
               
               if (typeof(EventInfo) == "object")
                {
                 try{
	                if ( ie6 ){ 
		                document.styleSheets[0].disabled = true;
		                document.styleSheets[0].disabled = false;
	                }
	                }
	                catch(e){}
                
                if (EventInfo.Status == "Executing")
                    {
                        document.getElementById("RowId").value = EventInfo.RowId;
                        document.getElementById('RegisterTitle').innerHTML = "" + EventInfo.Title + "";
                        //document.getElementById('RegisterDate').innerHTML = "" + EventInfo.StartDate + "";
                        document.getElementById('RegisterDate').innerHTML = EventInfo.StartDate + " - " + EventInfo.EndDate;                                 
                         
                        if (document.getElementById('EventDate') != null)
                            document.getElementById('EventDate').value = EventInfo.StartDate;
                        
                        var selects = document.getElementsByTagName('select');
                        
                        
                        for ( var i=0; i < selects.length; i++)
                        {
                        if (selects[i].id.indexOf('Price') > 0)
                            {
                            selects[i].options.length = 0;
                            selects[i].options[0] = new Option('','');
                            selects[i].options[1] = new Option(EventInfo.MemberFee + ' - Member'  ,'Member');
                            selects[i].options[2] = new Option(EventInfo.NonMemberFee + ' - Non Member'  ,'NonMember');
                            }
                        }
                        
                        
                         
                        
                            
                    }
                    toggleLayer('classprocessingimage2');
                    var elem = document.getElementById('RegisterTab');
                    show(elem,'Register');
                    
                    if (document.getElementById('PromoInfo') != null)
                    {
                        if ((EventInfo.EventType == "Open Symposium") || (EventInfo.EventType == "Conference") || (EventInfo.EventType == "Open Seminar"))
                            {                            
                            document.getElementById('PromoInfo').style.display = "none";                            
                            document.getElementById('PromoInfo').getElementsByTagName("input")[0].value = "";
                            }
                        else
                            {                                                    
                            document.getElementById('PromoInfo').style.display = "";
                            }       
                     }               
               }
           }
        
        
        }
        }





function MoveTabTo(tabName)
{
var tab = "";
var name = "";

if (tabName.toLowerCase() == 'register')
{
    tab = 'Register';
    name = 'RegisterTab';
}
if (tabName.toLowerCase() == 'schedule')
{
    tab = 'Schedule';
    name = 'ScheduleTab';
}
if (tabName.toLowerCase() == 'description')
{
    tab = 'DescriptionArea';
    name = 'DescriptionTab';
}
if (tab != "")
    {
    var elem = document.getElementById(name);
    show(elem,tab);
    }
}

function processRegistration()
        {        
        if (document.getElementById("RowId").value == '')        
            {
            alert('You must first select an event in which to register.');            
            }
        else
            {
            
            //display processing logo
            toggleLayer('classprocessingimage');
            
            
            var frm  = document.forms['FormBody'];   
            var numElements = frm.elements.length;
            var result = "";
            for (var i=0; i < numElements; i++)
                {
                var theElement = frm.elements[i];
                var elementName = theElement.name;
                var elementType = theElement.type;
                var elementValue = theElement.value;
                
                
                if ("text" == theElement.type || "textarea" == theElement.type)
                    {
                        result = result + elementName + '=' + elementValue + '|';
                    }
                else if ("checkbox" == theElement.type || "radio" == theElement.type)
                    {
                        if (theElement.checked)
                            {
                            result = result + elementName + '=' + elementValue + '|';
                            }
                    }
                 else if ("hidden" == theElement.type && elementName != '__VIEWSTATE')
                    {
                    result = result + elementName + '=' + elementValue + '|';
                    }
                else if ("select-one" == theElement.type)
                    {
                    result = result + elementName + '=' + elementValue + '|';                    
                    }
                else if ("select-multiple" == theElement.type)
                    {
                        result = result + elementName + '=';
                        var len = theElement.options.length;
                        for (var x=0; x  < len; x++)
                        {
                          if (theElement.options[x].selected)
                          {
                          result = result + theElement.options[x].value + ',';  
                          }
                          
                       
                        
                        } 
                        if (result.charAt(result.length) == ",")
                            {
                            result = result.substr(0,result.length-1);
                            }                   
                        result = result + '|';
                    }

                }            
                    
                    SitecoreWebsite.SOLI_Interior_Class_Sublayout.RegisterUser(result, processErrorMessage);
            }
        }





        function processErrorMessage(res)
        {
         toggleLayer('classprocessingimage');
        if (res.error != null)
        {

          document.getElementById('ErrorMsg').innerHTML = "<hr/>Your request was not processed for the following reason:<li>" + res.error.Message + "</li>";
          return;
        }
        else
        {
            if (res.value != null)
               {               
                if (res.value.indexOf("Add To Cart") > -1)
                    {window.location = "/MyLyrasis/Shopping Cart.aspx";}
                else
                    {document.getElementById('ErrorMsg').innerHTML = res.value;}
                
               try{
	                if ( ie6 ){ 
		                document.styleSheets[0].disabled = true;
		                document.styleSheets[0].disabled = false;
	                }
	                }
	           catch(e){}
                	      
               }
            else
               {
               document.getElementById('ErrorMsg').innerHTML = "";
               document.getElementById('ErrorMsg').innerHTML = res.value;
               
              
               }
        }
        }




function HideRow()
{

 var inputs = document.getElementsByTagName('input');
for ( var i=0; i < inputs.length; i++)
    {
    if (inputs[i].name.indexOf('txtFirstName') > -1)
    {inputs[i].value = '';}


    if (inputs[i].name.indexOf('txtLastName') > -1)
    {inputs[i].value = '';}

    if (inputs[i].name.indexOf('txtTelephone') > -1)
    {inputs[i].value = '';}

    if (inputs[i].name.indexOf('txtEmail') > -1)
    {inputs[i].value = '';}

    if (inputs[i].name.indexOf('txtFirstName') > -1)
    {inputs[i].value = '';}

    }
var elem = document.getElementById('AddUserRow');
elem.style.display = "none";
document.getElementById('ErrorMessage2').innerHTML = "";

 try{
	if ( ie6 ){ 
		document.styleSheets[0].disabled = true;
		document.styleSheets[0].disabled = false;
	}
	}
	catch(e){}

}

function ShowRow()
{
var elem = document.getElementById('AddUserRow');
try
    {
        elem.style.display="table-cell";
    }
catch(err)
    {
        elem.style.display="block";
    }
    
 try{
	if ( ie6 ){ 
		document.styleSheets[0].disabled = true;
		document.styleSheets[0].disabled = false;
	}
	}
	catch(e){}    
}




function AddUser()
{
var Msg = validateInput();

if (Msg == "")
    {
    document.getElementById('ErrorMsg').innerHTML = "";
     //display processing logo
    toggleLayer('classprocessingimage');
    
    
    var frm  = document.forms['FormBody'];   
    var numElements = frm.elements.length;
    var result = "";
    for (var i=0; i < numElements; i++)
        {
        var theElement = frm.elements[i];
        var elementName = theElement.name;
        var elementType = theElement.type;
        var elementValue = theElement.value;
        
        
        if ("text" == theElement.type || "textarea" == theElement.type)
            {
                result = result + elementName + '=' + elementValue + '|';
            }
        else if ("checkbox" == theElement.type || "radio" == theElement.type)
            {
                if (theElement.checked)
                    {
                    result = result + elementName + '=' + elementValue + '|';
                    }
            }
         else if ("hidden" == theElement.type && elementName != '__VIEWSTATE')
            {
            result = result + elementName + '=' + elementValue + '|';
            }
        else if ("select-one" == theElement.type)
            {
            result = result + elementName + '=' + elementValue + '|';                    
            }
        else if ("select-multiple" == theElement.type)
            {
                result = result + elementName + '=';
                var len = theElement.options.length;
                for (var x=0; x < len; x++)
                {
                  if (theElement.options[x].selected)
                  {
                  result = result + theElement.options[x].value + ',';  
                  }
                  
               
                
                } 
                if (result.charAt(result.length) == ",")
                    {
                    result = result.substr(0,result.length-1);
                    }                   
                    result = result + '|';
                    }

            }     
    //call ajax function on server after gather values to send.    
    
    SitecoreWebsite.SOLI_Interior_Class_Sublayout.AddUser(result, processAddUserMessage);
    }
else
    {
    
    document.getElementById('ErrorMsg').innerHTML = "The following errors were found:<br/><br/>" + Msg;
    try{
	if ( ie6 ){ 
		document.styleSheets[0].disabled = true;
		document.styleSheets[0].disabled = false;
	}
	}
	catch(e){}
	
    }
}



function processAddUserMessage(res)
{        
        toggleLayer('classprocessingimage');
        if (res.error != null)
        {            
          document.getElementById('ErrorMsg').innerHTML = "<hr/>Your request was not processed for the following reason:<li>" + res.error.Message + "</li>";
          return;
        }
        else
        {
            if (res.value != null)
               {                       
               
               var NewUserInfo = res.value; 
               if (typeof(NewUserInfo) == "object")
                    {
                    var message  = NewUserInfo.Message;
                    if (message == "Success")
                        {
                        var FirstName = NewUserInfo.FirstName;
                        var LastName = NewUserInfo.LastName;
                        var UserId = NewUserInfo.UserId;
                        
                        var selects = document.getElementsByTagName('select');
                        for ( var i=0; i < selects.length; i++)
                            {
                            var control = selects[i];
                            if (control.name.indexOf('Attendees') > -1)                                
                                {
                                   control.options[control.length] = new Option(LastName + ", " + FirstName, UserId);
                                   control.selectedIndex = control.length-1;
                                }
                            }
                         
                        HideRow();
                        }
                    else
                        {
                        HideRow();
                        document.getElementById('ErrorMsg').innerHTML = "<hr/>Your request was not processed for the following reason:<li>" + message + "</li>";              
                        }
                    
                    
                    }
               }
        }         
}


//this should be server side validation
function validateInput()
{
var Msg = "";
var inputs = document.getElementsByTagName('input');
for ( var i=0; i < inputs.length; i++)
    {
    var control = inputs[i];
    
    if (control.name.indexOf('txtFirstName') > -1)
        {
        if (control.value == "")
            {
            Msg = Msg + "<li> First Name is required</li>";
            }
        if (control.value.length > 50)
            {
            Msg = Msg + "<li> First Name may only be 50 characters</li>";
            }    
        }


    if (control.name.indexOf('txtLastName') > -1)
        {
        if (control.value == "")
            {
            Msg = Msg + "<li> Last Name is required</li>";
            }
        if (control.value.length > 50)
            {
            Msg = Msg + "<li> Last Name may only be 50 characters</li>";
            }    

        }
  
  
  if (control.name.indexOf('txtTelephone') > -1)
    {
    if (control.value == "")
        {
        Msg = Msg + "<li> Telephone is required</li>";
        }
    if (control.value.length > 20)
        {
        Msg = Msg + "<li> Telephone may only be 20 characters</li>";
        }    
    }

   if (control.name.indexOf('txtEmail') > -1)
        {
        if (control.value == "")
            {
            Msg = Msg + "<li> Email Address is required</li>";
            }    
        if (control.value.length > 100)
            {
            Msg = Msg + "<li> Email Address may only be 100 characters</li>";
            }    

        }

    }    

if (Msg != "")
    {return Msg;}
else
    {return "";}

}



function HasSelectedClass()
{   
   if (document.getElementById("RowId").value == "")   
        alert("You must first select an event before registration.  Please see the 'Schedule' tab.");
}