// Deezine I <3 Bike Lanes Positivism Project 2009
// Scott
// August 2009
// Provides AJAX functionality for "Add Rider"

var sent = false;

$(document).ready(function(){
    $("#button").click(function(){
        if ($("#buttonExpand").is(":hidden")){
            $("#buttonExpand").slideDown("fast");
            success = document.getElementById("buttonFeedback").innerHTML = "(click here to count yourself in)";
        }
        else if (isValid()){
            doAdd();
        } 
    });
    $("#tabControl1").css({'color':'#fff','background-color':'#058ACF'}); $("#tabControl5").css({'color':'#fff','background-color':'#058ACF'});
    $("#tab2").hide();
    $("#tab3").hide();
    $("#tab4").hide();
    $("#tab6").hide();
});


function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}

function isValid() {
    var name  = document.getElementById("name").value;
    var email = document.getElementById("email").value;
    var age = document.getElementById("age").value;
    var neighbourhood = document.getElementById("neighbourhood").value;
	if(!isNumber(age))
	{	age=0; }
    if (true == isEmailValid(email) && "Email" != email && true == !isBlank(name) && "Name" != name) 
    { return true; }
    else if (false == isEmailValid(email) || "Email" == email) { 
        document.getElementById('buttonFeedback').innerHTML = "What is your email?";
        return false; 
    }  
    else if (false == !isBlank(name) || "Name" == name) {
        document.getElementById('buttonFeedback').innerHTML = "What is your name?";
        return false;
    }
    else { 
        document.getElementById('buttonFeedback').innerHTML = "isValid error 1; email scott@deezine.ca";
        return false;
    }
}

function addToDB() {
    try { ajaxRequest = new XMLHttpRequest();
    } catch (e) { try { ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) { try { ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                alert("addToDB Error.  Please email scott@deezine.ca with your operating system and browser version.  Thanks!"); 
                return false;
            } } }
    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function() {
        if (ajaxRequest.readyState == 4) { 
            if (0 < ajaxRequest.responseText) {
                document.getElementById('numberOfRiders').innerHTML = "We're " + ajaxRequest.responseText + " Strong";
                document.getElementById('buttonFeedback').innerHTML = "(you're now an official rider!)";
                sendNewRiderEmail();
            } else {
                document.getElementById('buttonFeedback').innerHTML = "(you're already an official rider!)";                
    } } }
    var name  = document.getElementById("name").value;
    var email = document.getElementById("email").value;
    var age = document.getElementById("age").value;
    var sex = document.getElementById("sex").value;
    var neighbourhood = document.getElementById("neighbourhood").value;
    var r = Math.floor(Math.random()*1000001)
    var url = "addToDB.php";  
    var params = "?email=" + email + "&name=" + name + "&age=" + age + "&sex=" + sex + "&neighbourhood=" + neighbourhood + "&r=" + r;
    ajaxRequest.open("GET", url + params, true);
    ajaxRequest.send(null);
}

function sendNewRiderEmail() {
    try { ajaxRequest = new XMLHttpRequest();
    } catch (e) { try { ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) { try { ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                alert("sendNewRiderEmail Error.  Please email scott@deezine.ca with your operating system and browser version.  Thanks!"); 
                return false;
            } } } 
    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function() {
        if (ajaxRequest.readyState == 4) { 
            // do nothing 
        } }
    var name  = document.getElementById("name").value;
    var email = document.getElementById("email").value; 
    var r = Math.floor(Math.random()*1000001)
    var url = "email/newRiderEmail.php";  
    var params = "?email=" + email + "&name=" + name + "&r=" + r;
    ajaxRequest.open("GET", url + params, true);
    ajaxRequest.send(null);
}

function fieldclear(field)   {
  if (field.defaultValue == field.value) { field.value = ''; }
}
function restore(field) {
  if (field.value == "") { field.value = field.defaultValue; }
}
function isBlank(field)
{   
     if (field == "")
     {
         return true;
     }
     else
     {
         return false;
     }
}
function isEmailValid(email)
{   
     if (email.indexOf("@") < 0 || email.indexOf(".") < 0)
     {
         return false;
     }
     else
     {
         return true;
     }
}
function enter(event) {
    if (typeof event == "undefined") { event = window.event; } 
    var val = event.keyCode;
    if(val == 13) 
    { 
        doAdd();
    }
}

function doAdd () {
    if (isValid()) 
        {
            $("#buttonExpand").slideUp("fast");
            addToDB();
        }
}
function switchTo(tab) {
    var newID = $(tab).attr('id');
    var oldID = $(".activeTabControl").attr('id');     
    newID = newID.substr(10);
    oldID = oldID.substr(10); 
    $("#tab"+oldID).fadeOut( "100", function() {
        $("#tabControl"+oldID).removeClass("activeTabControl").css({'color' : 'inherit','background-color':'#aaa'}); ;    
        $(tab).addClass("activeTabControl").css({'color' : '#fff','background-color':'#058ACF'});  
        $("#tab"+newID).fadeIn("100");
        $("#tab"+oldID).removeClass("activeTab");
        $("#tab"+newID).addClass("activeTab");
    });
}
