/********************************************************************
    File:   
        testteam.js
    Brief:  
        Implementation of JavaScript functionality for 
        the test-team-signup.php page
    Dependencies:
        jquery-1.3.2.min.js             (jQuery library)
        jquery.easing.1.2.js            (jQuery library plugin)
        cufon-yui.js                    (font replacement tool)
        sendApplication.php             (php script used to send contact message via email) 
    Author:
        DigitalCavalry
    Author URI:
        http://graphicriver.net/user/DigitalCavalry
*********************************************************************/ 

// alias to jQuery library, function noConflict release control of the $ variable 
// to whichever library first implemented it
var $j = jQuery.noConflict();
// if true the send button is blocked
var g_blockSendButton = false;

/***************************************
    SETUP CONTACT FORM
****************************************/

function setupInputControls()
{
    // change border color wehen controls take focus
    $j(".commonInput, .commonTextarea, .contactInputHuman").focus(
        function()
        {
            $j(this).css("border", "1px solid #3399cc");
        }
    );
    
    // restore border color wehen controls lost focus
    $j(".commonInput, .commonTextarea, .contactInputHuman").blur(
        function()
        {
            $j(this).css("border", "1px solid #ccc");
            $j(this).css("border-right", "1px solid #eee");
            $j(this).css("border-bottom", "1px solid #eee");
        }
    );
    
    // when input name lost focus, validate the value
    $j("#inputFirstName").blur(
        function()
        {
            if($j(this).val() != "")
            {
                $j("#contactFirstNameErrorMsg").css("visibility", "hidden"); 
            } else
            {
                $j(this).css("border", "1px solid #FF0000");
                $j("#contactFirstNameErrorMsg").html("&nbsp;please enter your first name").css("visibility", "visible");            
            }
        }
    );
	
	    // when input name lost focus, validate the value
    $j("#inputLastName").blur(
        function()
        {
            if($j(this).val() != "")
            {
                $j("#contactLastNameErrorMsg").css("visibility", "hidden"); 
            } else
            {
                $j(this).css("border", "1px solid #FF0000");
                $j("#contactLastNameErrorMsg").html("&nbsp;please enter your last name").css("visibility", "visible");            
            }
        }
    );
	
		    // when input name lost focus, validate the value
    $j("#inputAddress").blur(
        function()
        {
            if($j(this).val() != "")
            {
                $j("#contactAddressErrorMsg").css("visibility", "hidden"); 
            } else
            {
                $j(this).css("border", "1px solid #FF0000");
                $j("#contactAddressErrorMsg").html("&nbsp;please enter your home address").css("visibility", "visible");            
            }
        }
    );
	
		    // when input name lost focus, validate the value
    $j("#inputPostalCode").blur(
        function()
        {
            if($j(this).val() != "")
            {
                $j("#contactPostalCodeErrorMsg").css("visibility", "hidden"); 
            } else
            {
                $j(this).css("border", "1px solid #FF0000");
                $j("#contactPostalCodeErrorMsg").html("&nbsp;please enter your postal code").css("visibility", "visible");            
            }
        }
    );
	
		    // when input name lost focus, validate the value
    $j("#inputCity").blur(
        function()
        {
            if($j(this).val() != "")
            {
                $j("#contactCityErrorMsg").css("visibility", "hidden"); 
            } else
            {
                $j(this).css("border", "1px solid #FF0000");
                $j("#contactCityErrorMsg").html("&nbsp;please enter your city").css("visibility", "visible");            
            }
        }
    );
    
		    // when input name lost focus, validate the value
    $j("#inputCountry").blur(
        function()
        {
            if($j(this).val() != "")
            {
                $j("#contactCountryErrorMsg").css("visibility", "hidden"); 
            } else
            {
                $j(this).css("border", "1px solid #FF0000");
                $j("#contactCountryErrorMsg").html("&nbsp;please enter your country").css("visibility", "visible");            
            }
        }
    );
	
 // when input gender lost focus validate the value 
    $j("#inputGender").blur(
        function()
        {
            if($j(this).val() != "")
            {
                $j("#contactGenderErrorMsg").css("visibility", "hidden"); 
            } else
            {
                $j(this).css("border", "1px solid #FF0000");
                $j("#contactGenderErrorMsg").html("&nbsp;you forgot to specify your gender").css("visibility", "visible");            
            }
        }
    );
	
	    // when input birthday lost focus validate the value 
    $j("#inputBday").blur(
        function()
        {
            if($j(this).val() != "")
            {
                $j("#contactBdayErrorMsg").css("visibility", "hidden"); 
            } else
            {
                $j(this).css("border", "1px solid #FF0000");
                $j("#contactBdayErrorMsg").html("&nbsp;you forgot to specify your birthday").css("visibility", "visible");            
            }
        }
    ); 
	
	    // when input height lost focus validate the value 
    $j("#inputHeight").blur(
        function()
        {
            if($j(this).val() != "")
            {
                $j("#contactHeightErrorMsg").css("visibility", "hidden"); 
            } else
            {
                $j(this).css("border", "1px solid #FF0000");
                $j("#contactHeightErrorMsg").html("&nbsp;you forgot to specify your height").css("visibility", "visible");            
            }
        }
    ); 
	
	    // when weight lost focus validate the value 
    $j("#inputWeight").blur(
        function()
        {
            if($j(this).val() != "")
            {
                $j("#contactWeightErrorMsg").css("visibility", "hidden"); 
            } else
            {
                $j(this).css("border", "1px solid #FF0000");
                $j("#contactWeightErrorMsg").html("&nbsp;you forgot to specify your weight").css("visibility", "visible");            
            }
        }
    ); 

    // when input tops lost focus validate the value 
    $j("#inputTop").blur(
        function()
        {
            if($j(this).val() != "")
            {
                $j("#contactTopErrorMsg").css("visibility", "hidden"); 
            } else
            {
                $j(this).css("border", "1px solid #FF0000");
                $j("#contactTopErrorMsg").html("&nbsp;you forgot to specify your top apparel size").css("visibility", "visible");            
            }
        }
    ); 

    // when input bottom lost focus validate the value 
    $j("#inputBottom").blur(
        function()
        {
            if($j(this).val() != "")
            {
                $j("#contactBottomErrorMsg").css("visibility", "hidden"); 
            } else
            {
                $j(this).css("border", "1px solid #FF0000");
                $j("#contactBottomErrorMsg").html("&nbsp;you forgot to specify your bottom apparel size").css("visibility", "visible");            
            }
        }
    ); 
	
	    // when input racing lost focus validate the value 
    $j("#inputRacing").blur(
        function()
        {
           if($j(this).val() != "")
            {
                $j("#contactRacingErrorMsg").css("visibility", "hidden"); 
            } else
            {
                $j(this).css("border", "1px solid #FF0000");
                $j("#contactRacingErrorMsg").html("&nbsp;you forgot to specify your previous race goals").css("visibility", "visible");            
            }
        }
    ); 
	
	    // when input placing lost focus validate the value 
    $j("#inputPlacing").blur(
        function()
        {
            if($j(this).val() != "")
            {
                $j("#contactPlacingErrorMsg").css("visibility", "hidden"); 
            } else
            {
                $j(this).css("border", "1px solid #FF0000");
                $j("#contactPlacingErrorMsg").html("&nbsp;you forgot to specify how you place in races").css("visibility", "visible");            
            }
        }
    ); 
	
	    // when input training lost focus validate the value 
    $j("#inputTraining").blur(
        function()
        {
            if($j(this).val() != "")
            {
                $j("#contactTrainingErrorMsg").css("visibility", "hidden"); 
            } else
            {
                $j(this).css("border", "1px solid #FF0000");
                $j("#contactTrainingErrorMsg").html("&nbsp;you forgot to specify your average training hours").css("visibility", "visible");            
            }
        }
    ); 
	
	
    // when input email lost focus validate the value 
    $j("#inputEmail").blur(
        function()
        {
            
            if($j(this).val() != "")
            {
                // create regular expression object
                var regExp = new RegExp(/^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9]([-a-z0-9_]?[a-z0-9])*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z]{2})|([1]?\d{1,2}|2[0-4]{1}\d{1}|25[0-5]{1})(\.([1]?\d{1,2}|2[0-4]{1}\d{1}|25[0-5]{1})){3})(:[0-9]{1,5})?$/i);
                // check email address, if result is null the email string dont match to pattern
                var resultExp = regExp.exec($j(this).val());
                if(resultExp == null) 
                {
                    $j(this).css("border", "1px solid #FF0000");
                    $j("#contactEmailErrorMsg").html("&nbsp;sorry, but that email address has a bad format").css("visibility", "visible");
                } else
                {
                    $j("#contactEmailErrorMsg").css("visibility", "hidden");
                }
                
            } else
            {
                $j(this).css("border", "1px solid #FF0000");
                $j("#contactEmailErrorMsg").html("&nbsp;please enter your email adress").css("visibility", "visible"); 
            }
        }
    );
    

    // when input message lost focus validate the value 
    $j("#inputMessage").blur(
        function()
        {
            if($j(this).val() != "")
            {
                $j("#contactMessageErrorMsg").css("visibility", "hidden"); 
            } else
            {
                $j(this).css("border", "1px solid #FF0000");
                $j("#contactMessageErrorMsg").html("&nbsp;do you not want to tell us why?").css("visibility", "visible");            
            }
        }
    );
    
    // when input human lost focus validate the value 
    $j("#inputHuman").blur(
        function()
        {
            if(parseInt($j(this).val(), 10) == 226)
            {
                $j("#contactHumanErrorMsg").css("visibility", "hidden"); 
            } else
            {
                $j(this).css("border", "1px solid #FF0000");
                $j("#contactHumanErrorMsg").html("&nbsp;you really don't know?").css("visibility", "visible");            
            }
        }
    );         
    
} // end of function setupInputControl
    
function setupSendButton()
{
    $j("#contactSendButton").click(
        function()
        {
            // prevent multiple send call by user
            if(true == g_blockSendButton)
            {
                return;
            }
            
            g_blockSendButton = true;
            // get all data from contact form and save it in local variables
            var inputFirstName = $j("#inputFirstName").val();
			var inputLastName = $j("#inputLastName").val();
			var inputAddress = $j("#inputAddress").val();
			var inputPostalCode = $j("#inputPostalCode").val();
			var inputCity = $j("#inputCity").val();
			var inputCountry = $j("#inputCountry").val();
            var inputEmail = $j("#inputEmail").val();
            var inputGender = $j("#inputGender").val();
			var inputBday = $j("#inputBday").val();
			var inputHeight = $j("#inputHeight").val();
			var inputWeight = $j("#inputWeight").val();
			var inputTop = $j("#inputTop").val();
			var inputBottom = $j("#inputBottom").val();
			var inputRacing = $j("#inputRacing").val();
            var inputPlacing = $j("#inputPlacing").val();
            var inputTraining = $j("#inputTraining").val();
            var inputMessage = $j("#inputMessage").val();
            var inputHuman = $j("#inputHuman").val();
           
            // create regular expression object
            var regExp = new RegExp(/^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9]([-a-z0-9_]?[a-z0-9])*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z]{2})|([1]?\d{1,2}|2[0-4]{1}\d{1}|25[0-5]{1})(\.([1]?\d{1,2}|2[0-4]{1}\d{1}|25[0-5]{1})){3})(:[0-9]{1,5})?$/i);
            // check email address, if result is null the email string dont match to pattern
            var resultExp = regExp.exec(inputEmail);
            // check user answer, resultHuman = true if ok, false if answer is bad
            var resultHuman = parseInt(inputHuman, 10) == 226;
            // check the error by logical sum
            var error = (resultHuman != true) || (resultExp == null)  || (inputFirstName == "") || (inputLastName == "") || (inputAddress == "") || (inputPostalCode == "") || (inputCity == "") || (inputCountry == "") || (inputEmail == "") || (inputGender == "") || (inputBday == "") || (inputHeight == "") || (inputWeight == "") || (inputTop == "") || (inputBottom == "") || (inputRacing == "") || (inputPlacing == "") || (inputTraining == "") || (inputMessage == "");

            // if there was an error we must display some information and mark
            // input cotrol with wrong data    
            if(error)
            {                
                $j("#contactFirstNameErrorMsg").css("visibility", "hidden");
				$j("#contactLastNameErrorMsg").css("visibility", "hidden");
				$j("#contactAddressErrorMsg").css("visibility", "hidden");
				$j("#contactPostalCodeErrorMsg").css("visibility", "hidden");
				$j("#contactCityErrorMsg").css("visibility", "hidden");
				$j("#contactCountryErrorMsg").css("visibility", "hidden");
                $j("#contactEmailErrorMsg").css("visibility", "hidden");
                $j("#contactGenderErrorMsg").css("visibility", "hidden");
				$j("#contactBdayErrorMsg").css("visibility", "hidden");
				$j("#contactHeightErrorMsg").css("visibility", "hidden");
				$j("#contactWeightErrorMsg").css("visibility", "hidden");
				$j("#contactTopErrorMsg").css("visibility", "hidden");
				$j("#contactBottomErrorMsg").css("visibility", "hidden");
				$j("#contactRacingErrorMsg").css("visibility", "hidden");
                $j("#contactPlacingErrorMsg").css("visibility", "hidden");
                $j("#contactTrainingErrorMsg").css("visibility", "hidden");
                $j("#contactMessageErrorMsg").css("visibility", "hidden");
                $j("#contactHumanErrorMsg").css("visibility", "hidden");
                $j("#contactErrorPanel").slideUp(300);
                
                // errors processing
                if(inputFirstName == "")
                {
                    $j("#inputFirstName").css("border", "1px solid #FF0000");
                    $j("#contactFirstNameErrorMsg").html("&nbsp;please enter your first name").css("visibility", "visible");
                }
				if(inputLastName == "")
                {
                    $j("#inputLastName").css("border", "1px solid #FF0000");
                    $j("#contactLastNameErrorMsg").html("&nbsp;please enter your last name").css("visibility", "visible");
                }
				if(inputAddress == "")
                {
                    $j("#inputAddress").css("border", "1px solid #FF0000");
                    $j("#contactAddressErrorMsg").html("&nbsp;please enter your home address").css("visibility", "visible");
                }
				if(inputPostalCode == "")
                {
                    $j("#inputPostalCode").css("border", "1px solid #FF0000");
                    $j("#contactPostalCodeErrorMsg").html("&nbsp;please enter your postal code").css("visibility", "visible");
                }
				if(inputCity == "")
                {
                    $j("#inputCity").css("border", "1px solid #FF0000");
                    $j("#contactCityErrorMsg").html("&nbsp;please enter your city").css("visibility", "visible");
                }
				if(inputCountry == "")
                {
                    $j("#inputCountry").css("border", "1px solid #FF0000");
                    $j("#contactCountryErrorMsg").html("&nbsp;please enter your country").css("visibility", "visible");
                }
                if(inputEmail == "")
                {
                    $j("#inputEmail").css("border", "1px solid #FF0000");
                    $j("#contactEmailErrorMsg").html("&nbsp;please enter your email address").css("visibility", "visible"); 
                } else                
                if(resultExp == null) 
                {
                    $j("#inputEmail").css("border", "1px solid #FF0000");
                    $j("#contactEmailErrorMsg").html("&nbsp;sorry, but that email address has bad format").css("visibility", "visible");
                }
                if(inputGender == "")
                {
                    $j("#inputGender").css("border", "1px solid #FF0000");
                    $j("#contactGenderErrorMsg").html("&nbsp;you forgot to specify your gender").css("visibility", "visible"); 
                }
				if(inputBday == "")
                {
                    $j("#inputBday").css("border", "1px solid #FF0000");
                    $j("#contactBdayErrorMsg").html("&nbsp;you forgot to specify your birthday").css("visibility", "visible"); 
                }
				if(inputHeight == "")
                {
                    $j("#inputHeight").css("border", "1px solid #FF0000");
                    $j("#contactHeightErrorMsg").html("&nbsp;you forgot to specify your height").css("visibility", "visible"); 
                }
				if(inputWeight == "")
                {
                    $j("#inputWeight").css("border", "1px solid #FF0000");
                    $j("#contactWeightErrorMsg").html("&nbsp;you forgot to specify your weight").css("visibility", "visible"); 
                }
				if(inputTop == "")
                {
                    $j("#inputTop").css("border", "1px solid #FF0000");
                    $j("#contactTopErrorMsg").html("&nbsp;you forgot to specify your top apparel size").css("visibility", "visible"); 
                }
				if(inputBottom == "")
                {
                    $j("#inputBottom").css("border", "1px solid #FF0000");
                    $j("#contactBottomErrorMsg").html("&nbsp;you forgot to specify your bottom apparel size").css("visibility", "visible"); 
                }
				if(inputRacing == "")
                {
                    $j("#inputRacing").css("border", "1px solid #FF0000");
                    $j("#contactRacingErrorMsg").html("&nbsp;you forgot to specify your previous races").css("visibility", "visible"); 
                }
				if(inputPlacing == "")
                {
                    $j("#inputPlacing").css("border", "1px solid #FF0000");
                    $j("#contactPlacingErrorMsg").html("&nbsp;you forgot to specify how you place in races").css("visibility", "visible"); 
                }
				if(inputTraining == "")
                {
                    $j("#inputTraining").css("border", "1px solid #FF0000");
                    $j("#contactTrainingErrorMsg").html("&nbsp;you forgot to specify your average weekly training hours").css("visibility", "visible"); 
                }
                if(inputMessage == "")
                {
                    $j("#inputMessage").css("border", "1px solid #FF0000");
                    $j("#contactMessageErrorMsg").html("&nbsp;do you not have a message for us").css("visibility", "visible");
                }
                if(resultHuman != true)
                {
                    $j("#inputHuman").css("border", "1px solid #FF0000");
                    $j("#contactHumanErrorMsg").html("&nbsp;you really don't know?").css("visibility", "visible"); 
                }
                // unblock send button
                g_blockSendButton = false;                
            } else // if no error, if all data is set correctly
            {
                // let's define function called after ajax successfull call 
                function phpCallback(data)
                {   
                    // if success        
                    if(data == "ok")
                    {   
                        $j("#contactErrorPanel").text("");            
                        $j("#contactErrorPanel").css("background-color", "#ccFFcc");
                        $j("#contactErrorPanel").append("Your email has been sent, my friend!");
                        $j("#contactErrorPanel").css("border", "1px solid #339933");
                        $j("#contactErrorPanel").slideDown(300, function(){  g_blockSendButton = false;});
                        
                        $j("#inputFirstName").val("");
						$j("#inputLastName").val("");
						$j("#inputAddress").val("");
						$j("#inputPostalCode").val("");
						$j("#inputCity").val("");
						$j("#inputCountry").val("");
                        $j("#inputEmail").val("");
                        $j("#inputGender").val("");
						$j("#inputBday").val("");
						$j("#inputHeight").val("");
						$j("#inputWeight").val("");
						$j("#inputTop").val("");
						$j("#inputBottom").val("");
						$j("#inputRacing").val("");
                        $j("#inputPlacing").val("");
                        $j("#inputTraining").val("");
                        $j("#inputMessage").val("");
                        $j("#inputHuman").val(""); 
                    } else // if error/problem during email sending in php script
                    {
                        $j("#contactErrorPanel").text("");
                        $j("#contactErrorPanel").css("background-color", "#FFcccc");
                        $j("#contactErrorPanel").css("border", "1px solid #993333");
                        $j("#contactErrorPanel").append("Crap! Something happened during email sending. Can you try again?");
                        $j("#contactErrorPanel").slideDown(300, function(){  g_blockSendButton = false;});               
                    }
                } // end of function phpCallback            
            
            
                // all data is correct so we can hide error/success panel
                $j("#contactErrorPanel").slideUp(300);
                
                // build data string for post call
                var data = "inputFirstName="+inputFirstName;
				data += "&"+"inputLastName="+inputLastName;
				data += "&"+"inputAddress="+inputAddress;
				data += "&"+"inputPostalCode="+inputPostalCode;
				data += "&"+"inputCity="+inputCity;
				data += "&"+"inputCountry="+inputCountry;
				data += "&"+"inputEmail="+inputEmail;
                data += "&"+"inputGender="+inputSubject;
				data += "&"+"inputBday="+inputBday;
				data += "&"+"inputHeight="+inputHeight;
				data += "&"+"inputWeight="+inputWeight;
				data += "&"+"inputTop="+inputTop;
				data += "&"+"inputBottom="+inputBottom;
				data += "&"+"inputRacing="+inputRacing;
				data += "&"+"inputPlacing="+inputPlacing;
                data += "&"+"inputTraining="+inputTraining;
                data += "&"+"inputMessage="+inputMessage; 
                
                // try to send email via php script executed by server
                $j.post("php/contact/sendApplication.php", data, phpCallback, "text");
                // unblock send button
            } // end else all dara
        }
    );
} // end of function setupSendButton
    
/***************************************
    MAIN CODE - CALL THEN PAGE LOADED
****************************************/
       
// binding action to event onload page
$j(document).ready(
    function()
    {
        // common.js
        setupGlobal();
        setupCommunityButtons();            
        setupToolTipText();
        setupSearchBox();
        setupCufonFontReplacement();
        setupSideBarMiniSlider();
        setupMultiImageLightBox();
        setupSidebarTabsPanel();
        setupLoadingAsynchronousImages();
        setupToolTipImagePreview();
        setupTextLabelImagePreview();
        // this file
        setupInputControls();
        setupSendButton();
    }
);




    
