// JavaScript Document
var g_navArray = new Array();
g_navArray[0]="home_nav";
g_navArray[1]="services_nav";
g_navArray[2]="about_nav";
g_navArray[3]="donate_nav";
g_navArray[4]="get_involved_nav";
g_navArray[5]="news_nav";
g_navArray[6]="contact_nav";

var g_navImagesArray = new Array();
g_navImagesArray[0]="home";
g_navImagesArray[1]="services";
g_navImagesArray[2]="about";
g_navImagesArray[3]="donate";
g_navImagesArray[4]="get_involved";
g_navImagesArray[5]="news";
g_navImagesArray[6]="contact";

var root = "http://www.thegoodsam.org/";

function postMainLoad(){
	preloadImages();
	setActive();
	setImagePaths();
	clearInputs();
}

/**
*
*/
function clearInputs() {
	document.getElementById('news_email').value = "Enter your email here";
}

/**
*
*/
function joinNewsletter() {
	var email = document.getElementById("news_email").value;
	
	if (email == "Added successfully" || email == "Enter your email here") {
			//document.getElementById("news_email").style.textDecoration = "underline";
			alert("Please enter your email into the input field to the left of the Join Newsletter button");
			return false;
	}
	else
	
	//Send email to database to be added
	var paramNames = "type,email";
	var paramVals  = "addNewsletter," + email;
	var url        = "request_data.php";
	
	//Wait for a response from the login.php file
	var response = postRequest(paramNames, paramVals, url);
	
	document.getElementById("news_email").value = "Added successfully";
}

/**
*
*/
function swapEmailOn(elem) {
	if (elem.value == "Enter your email here")
		elem.value = "";
}

function swapEmailOff(elem) {
	if (elem.value == "")
		elem.value = "Enter your email here";
}

function preloadImages() {
	
	//Nav images preloaded
	nav1 = new Image(64,40); 
	nav1.src = root + "elements/images/navigation/about_2.gif";	
	
	//Nav images preloaded
	nav2 = new Image(64,40); 
	nav2.src = root + "elements/images/navigation/contact_2.gif";	
	
	//Nav images preloaded
	nav3 = new Image(70,40); 
	nav3.src = root + "elements/images/navigation/donate_2.gif";	
	
	//Nav images preloaded
	nav4 = new Image(95,40); 
	nav4.src = root + "elements/images/navigation/get_involved_2.gif";	
	
	//Nav images preloaded
	nav5 = new Image(63,40); 
	nav5.src = root + "elements/images/navigation/home_2.gif";		
	
	//Nav images preloaded
	nav6 = new Image(64,40); 
	nav6.src = root + "elements/images/navigation/news_2.gif";		
	
	//Nav images preloaded
	nav7 = new Image(78,40); 
	nav7.src = root + "elements/images/navigation/sevices_2.gif";			
	
}


function fadeElem(elem) {
	elem.fadeIn("slow");	
	
}


/**
* Function used to set the class name of the active navigation button.  Checks the hidden page_name element
* on each page to determine this
*
**/
function setActive(){
	var page = document.getElementById("page_name").innerHTML;
	
	switch (page) {
	
		case "index" : 
			document.getElementById("home_nav").className = "active_nav";
			break;
		case "services" : 
			document.getElementById("services_nav").className = "active_nav";
			break;
		case "about" : 
			document.getElementById("about_nav").className = "active_nav";
			break;
		case "donate" : 
			document.getElementById("donate_nav").className = "active_nav";
			break;		
		case "get_involved" : 
			document.getElementById("get_involved_nav").className = "active_nav";
			break;
		case "contact" : 
			document.getElementById("contact_nav").className = "active_nav";
			break;		
		case "news" : 
			document.getElementById("news_nav").className = "active_nav";
			break;				
		
	}
}

function setImagePaths(){
	var shade = 1;
	for (var i = 0; i < g_navArray.length; i++){
		shade = 1;
		elem = document.getElementById(g_navArray[i]);
		if (elem.className == "active_nav")
			shade = 3;
		elem.src = root + "elements/images/navigation/" + g_navImagesArray[i] + "_" + shade + ".gif";
	}
}


function swapNavImage(elem){
	for (var i = 0; i < g_navArray.length; i++){
		if (elem.id == g_navArray[i] && elem.className != "active_nav"){
			elem.src = root + "elements/images/navigation/" + g_navImagesArray[i] + "_2.gif";
			break;
		}
	}
}

function swapBackImage(elem){
	for (var i = 0; i < g_navArray.length; i++){
		if (elem.id == g_navArray[i] && elem.className != "active_nav"){
			elem.src = root + "elements/images/navigation/" + g_navImagesArray[i] + "_1.gif";
			break;
		}
	}
}


/** 
* @Desc This function returns a valid XML HTTP object according to the browser that is being used
*       by the user. The XML HTTP request object can be used to send synchronous or asynchronous HTTP 
*       requests to pages and scripts on the current domain.
*
**/
function getXmlHttpObject() {
    var xml_http = null;
        
    try {
        // Firefox, Opera 8.0+, Safari, standard-compliant browsers
        xml_http = new XMLHttpRequest();
    }
        catch (e) {
        // Internet Explorer
        try {
            xml_http = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (ex) {
            xml_http = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    if (!xml_http) {
        alert("Could not create an HTTP Request.\nPlease upgrade your web browser" +
            " and/or adjust JavaScript security settings.");
        throw "Error - could not create an HTTP Request";
    }
    return xml_http;
}

/**
* @Desc This function opens and sends a POST request to the specified URL with the parameters in the 
*       body of the POST.  The function uses sychronous requests.
*
* @params paramNames comma seperated list of param names to send via HTTP request
* @params paramVals comma seperated list of param values to send via HTTP request
* @params url the URL to send the request to
*
* @return  the response from the HTTP post request
*
**/
function postRequest(param_names, param_vals, url){

        var request = getXmlHttpObject();
        
        //Encode the parameters to be sent
        var temp_names = param_names.split(",");
        var temp_vals  = param_vals.split(",");
        var params;
        
        //Set the first paramater in the param variable
        params = temp_names[0] + "=" + encodeURIComponent(temp_vals[0]);
        //Loop to add the rest of the params (in neccessary)
        for (var i = 1; i < temp_names.length; i++){
                params += "&" + temp_names[i] + "=" + encodeURIComponent(temp_vals[i]);                                                                    
        }
        
        //Open a sychronous POST request
        request.open("POST", url, false);
        
        //Set the content-type request header for a POST request
        request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        
        //Send the request with the params in the body
        request.send(params);
        
        //Return the replied status
        return request.responseText;
}

