﻿window.addEvent('domready', function() {
    
    // input bluring and focusing
    var inputs = $('spreadTheWord').getElement('.spreadForm').getElements('input[type="text"]');
    inputs.each(function(myInput, index) {
        var myVal = myInput.get('value');
        myInput.addEvent('focus', function() {
            if(myInput.get('value') == myVal){
                myInput.set('value','');
            }              
        });
        myInput.addEvent('blur', function() {
            if(myInput.get('value') == ''){
                myInput.set('value', myVal);
                if(myInput.get('name') == 'recipient_name'){
                    $('spreadTheWord').getElement('.spreadEmail').getElement('.friendName').set('html', myVal);
                }
                if(myInput.get('name') == 'sender_name'){
                    $('spreadTheWord').getElement('.spreadEmail').getElement('.yourName').set('html', myVal);
                }                
            } else {
                if(myInput.get('name') == 'recipient_name'){
                    $('spreadTheWord').getElement('.spreadEmail').getElement('.friendName').set('html', myInput.get('value'));
                }
                if(myInput.get('name') == 'sender_name'){
                    $('spreadTheWord').getElement('.spreadEmail').getElement('.yourName').set('html', myInput.get('value'));
                }                
                
            }
        });        
    });
    
    // toggleing boss content 
    var radioInputs = $('spreadTheWord').getElement('.spreadForm').getElements('input[type="radio"]');
    var bossType;

    radioInputs.each(function(radioInput, index) {
        if(radioInput.checked){
            bossType = radioInput.get('value');
        }
        radioInput.addEvent('click', function() {
            bossType = radioInput.get('value');
            if(bossType == 'itpro'){
                $('devCopy').setStyle('display', 'none');
                $('itPro').setStyle('display', 'block');
            } else if(bossType == 'dev'){
                $('devCopy').setStyle('display', 'block');
                $('itPro').setStyle('display', 'none');            
            }
        });
    });


    // validation
    var subButtons = $('spreadTheWord').getElement('.spreadButtons').getElements('a');
    subButtons.each(function(subButton, index) {
        subButton.addEvent('click', function(event) {
           if(subButton.hasClass('btnSend')){        
                event.stop();
                
                var retVal = true;
                var inputVals = [];
                var emailType = $('spreadTheWord').getElement('.spreadButtons').getElement('input').get('value');
                // checks values of inputs

                inputs.each(function(myInput, index) {
                    var parent = myInput.getParent();
                    if (myInput.get('name') == 'sender_email' || myInput.get('name') == 'recipient_email') {
                        var emailRegex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
                        if (!emailRegex.test(myInput.value)) {
                            parent.addClass('error');
                            myInput.setStyle('backgroundColor', '#ffc211');
                            retVal = false;
                        } else {
                            parent.removeClass('error');
                            myInput.setStyle('backgroundColor', '#fff');
                        }
                    } else {
                        if (!checkInput(myInput.get('value'))) {
                            parent.addClass('error');
                            myInput.setStyle('backgroundColor', '#ffc211');
                            retVal = false;
                        } else {
                            parent.removeClass('error');
                            myInput.setStyle('backgroundColor', '#fff');
                        }
                    }
                    inputVals[index] = myInput.get('value');
                });
                
                // all input vals are ok, make request
                if(retVal){
                    var myRequest = new Request({
                        method: 'get',
                        url: 'SpreadTheWord_SendMail.aspx',
                        onSuccess: function(txt) {
                            $('spreadTheWordBody').set('html', '');
			                new Element('div', { 
			                    'html': 'Thanks for spreading the word. <br/><br/>  <a href="spread-the-word.aspx?type=' + emailType + '" class="btnSendAnother imgbutton">Send another email</a> ',
			                    'class' : 'spreadSuccess messageBox'
			                }).inject($('spreadTheWordBody'));					                                            
                        },
                        onFailure: function() {
                            $('spreadTheWordBody').set('html', '');	                                                        
			                new Element('div', { 
			                    'html': 'An error occured while sending the email, please try again later. <br/><br/> <a href="spread-the-word.aspx?type=' + emailType + '"  class="btnTryAgain imgbutton">Try Again</a>',
				                'class' : 'spreadError messageBox'	                
			                }).inject($('spreadTheWordBody'));				                
                        }
                    });
                    
	                var emailTypeNum = 0;
	                if(emailType == 'boss'){
	                    if(bossType == 'dev'){
	                        emailTypeNum = 1;
	                    } else if(bossType == 'itpro'){
	                        emailTypeNum = 2;
	                    }
	                }
                    myRequest.send('name2=' + inputVals[0] + '&email2=' + inputVals[1] + '&name=' + inputVals[2] + '&email=' + inputVals[3] + '&emailType=' + emailTypeNum);        
                } 

               
           }
                         
        });        
    });    

}); 

function checkInput(inputVal){
    var retVal = true;
    switch(inputVal){
        case '':
            retVal = false;
            break;    
        case "Your name":
            retVal = false;
            break;
        case "Your friend's name":
            retVal = false;
            break;
        case "Your friend's e-mail address":
            retVal = false;
            break;
        case "Your e-mail address":
            retVal = false;
            break;
        case "Your boss' name":
            retVal = false;
            break;
        case "Your boss' e-mail address":
            retVal = false;
            break;                                                             

    }    
    return retVal;
}