// JavaScript Document

function fetchAddress() {
	var loc;
	if (window.location.hostname == 'everest') {
		loc = 'http://everest:8888/AVECCT/http/inc/ajax/';
	} else {
		loc = 'http://avecct.org/inc/ajax/';
	}
	return loc;
}

/*

function checkForDupEmail(id,member_id) {
	
	var loc;
	var method;
	
	loc = fetchAddress();
	loc += "dup_email.php?address=" + document.getElementById(id).value;
	
	// Prints errors or whatever out to a div called ajax_error
	// document.getElementById('ajax_error').innerHTML=loc;
	
	try {
		
		if (window.XMLHttpRequest) {
			xmlhttp = new XMLHttpRequest()
			method = 'GET';
		} else {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			method= 'POST';
		}
	}
	
	catch (e) {}
	
	xmlhttp.onreadystatechange = trigger1;
	xmlhttp.open(method, loc);
	xmlhttp.send(null);
}

function trigger1() {
	if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
		var response = xmlhttp.responseText;
		var update = [];
		update = response.split('||');
		//document.getElementById(update[0]).innerHTML = update[1];
		alert("Hey You! ",update[1]);
	}
}

*/

////////////////////////////


function hideProfile(member_id) {
	var loc;
	var method;
	loc = fetchAddress();
	loc += "hide_profile.php?member_id=" + member_id;
	try {if (window.XMLHttpRequest) {xmlhttp = new XMLHttpRequest();method = 'GET';} else {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");method= 'POST';}}catch (e) {}
	xmlhttp.onreadystatechange = trigger2;
	xmlhttp.open(method, loc);
	xmlhttp.send(null);
}


function trigger2() {
	if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
		var msg;
		var res;
		var val;
		var update = xmlhttp.responseText;
		res = update.split('||');
		
		if (res[0] == 1) {
			msg = 'Uncheck to allow other AVECCT members to view your profile.';
			val = 0;
		} else {
			msg = 'Check to hide your profile from other AVECCT members.';
			val = 1;
		}
		
		// iht = "<input type='checkbox' name='hide_profile' id='' value='1' onmouseup='hideProfile(\"" + res[1] + "\")' /> " + msg;
		
		document.getElementById('chk_hide_profie').value = val;
		document.getElementById('hide_profile_message').innerHTML = msg;
		NLBfadeBg('hide_profile_message','#33ff33','#eeffee','500');
		
		// alert(val + ' ... ' + msg);
		
	}
}


function toggleMentorInterest(member_id) {
	var loc;
	var method;
	loc = fetchAddress();
	loc += "mentor_interest.php?member_id=" + member_id;
	try {if (window.XMLHttpRequest) {xmlhttp = new XMLHttpRequest();method = 'GET';} else {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");method= 'POST';}}catch (e) {}
	xmlhttp.onreadystatechange = trigger4;
	xmlhttp.open(method, loc);
	xmlhttp.send(null);
}

function trigger4() {
	if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
		var msg;
		var res;
		var val;
		var update = xmlhttp.responseText;
		res = update.split('||');
		val = res[0] == 1 ? 0 : 1;
		document.getElementById('willing_to_mentor').value = val;
		NLBfadeBg('willing_to_mentor_message','#33ff33','#eeffee','500');
	}
}



function updateMemPmts(cnc) {
	
	var loc;
	var method;
	var val;
	var spl = cnc.split('|');
	var fld = spl[0]+'_'+spl[1];
	
	val = document.getElementById(fld).value;
	
	loc = fetchAddress();
	loc += "update_payments.php?cnc="+cnc+"&val="+val;
	
	try {
		if (window.XMLHttpRequest) {
			xmlhttp = new XMLHttpRequest()
			method = 'GET';
		} else {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			method= 'POST';
		}
	}
	
	catch (e) {}
	
	xmlhttp.onreadystatechange = trigger3;
	xmlhttp.open(method, loc);
	xmlhttp.send(null);
	
}

function trigger3() {
	
	if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
		
		var response = xmlhttp.responseText;
		var update = response.split('|');
		var val = update[2];
		
		if (update[0] == 1) {
			document.getElementById(update[1]).value = update[2];
			NLBfadeBg(update[1],'#66DD00','#FFFFFF','500');
		}
	}
}




/*************************************************************
* NLB Background Color Fader v1.0
* Author: Justin Barlow - www.netlobo.com
*
* Description:
* The Background Color Fader allows you to gradually fade the
* background of any HTML element.
*
* Usage:
* Call the Background Color Fader as follows:
*   NLBfadeBg( elementId, startBgColor, endBgColor, fadeTime );
*
* Description of Parameters
*   elementId - The id of the element you wish to fade the
*             background of.
*   startBgColor - The background color you wish to start the
*             fade from.
*   endBgColor - The background color you want to fade to.
*   fadeTime - The duration of the fade in milliseconds.
*************************************************************/

var nlbFade_hextable = [ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' ]; // used for RGB to Hex and Hex to RGB conversions
var nlbFade_elemTable = new Array( ); // global array to keep track of faded elements
var nlbFade_t = new Array( ); // global array to keep track of fading timers
function NLBfadeBg( elementId, startBgColor, endBgColor, fadeTime )
{
	var timeBetweenSteps = Math.round( Math.max( fadeTime / 300, 30 ) );
	var nlbFade_elemTableId = nlbFade_elemTable.indexOf( elementId );
	if( nlbFade_elemTableId > -1 )
	{
		for( var i = 0; i < nlbFade_t[nlbFade_elemTableId].length; i++ )
			clearTimeout( nlbFade_t[nlbFade_elemTableId][i] );
	}
	else
	{
		nlbFade_elemTable.push( elementId );
		nlbFade_elemTableId = nlbFade_elemTable.indexOf( elementId );
	}
	var startBgColorRGB = hexToRGB( startBgColor );
	var endBgColorRGB = hexToRGB( endBgColor );
	var diffRGB = new Array( );
	for( var i = 0; i < 3; i++ )
		diffRGB[i] = endBgColorRGB[i] - startBgColorRGB[i];
	var steps = Math.ceil( fadeTime / timeBetweenSteps );
	var nlbFade_s = new Array( );
	for( var i = 1; i <= steps; i++ )
	{
		var changes = new Array( );
		for( var j = 0; j < diffRGB.length; j++ )
			changes[j] = startBgColorRGB[j] + Math.round( ( diffRGB[j] / steps ) * i );
		if( i == steps )
			nlbFade_s[i - 1] = setTimeout( 'document.getElementById("'+elementId+'").style.backgroundColor = "'+endBgColor+'";', timeBetweenSteps*(i-1) );
		else
			nlbFade_s[i - 1] = setTimeout( 'document.getElementById("'+elementId+'").style.backgroundColor = "'+RGBToHex( changes )+'";', timeBetweenSteps*(i-1) );
	}
	nlbFade_t[nlbFade_elemTableId] = nlbFade_s;
}
function hexToRGB( hexVal )
{
	hexVal = hexVal.toUpperCase( );
	if( hexVal.substring( 0, 1 ) == '#' )
		hexVal = hexVal.substring( 1 );
	var hexArray = new Array( );
	var rgbArray = new Array( );
	hexArray[0] = hexVal.substring( 0, 2 );
	hexArray[1] = hexVal.substring( 2, 4 );
	hexArray[2] = hexVal.substring( 4, 6 );
	for( var k = 0; k < hexArray.length; k++ )
	{
		var num = hexArray[k];
		var res = 0;
		var j = 0;
		for( var i = num.length - 1; i >= 0; i-- )
			res += parseInt( nlbFade_hextable.indexOf( num.charAt( i ) ) ) * Math.pow( 16, j++ );
		rgbArray[k] = res;
	}
	return rgbArray;
}
function RGBToHex( rgbArray )
{
	var retval = new Array( );
	for( var j = 0; j < rgbArray.length; j++ )
	{
		var result = new Array( );
		var val = rgbArray[j];
		var i = 0;
		while( val > 16 )
		{
			result[i++] = val%16;
			val = Math.floor( val/16 );
		}
		result[i++] = val%16;
		var out = '';
		for( var k = result.length - 1; k >= 0; k-- )
			out += nlbFade_hextable[result[k]];
		retval[j] = padLeft( out, '0', 2 );
	}
	out = '#';
	for( var i = 0; i < retval.length; i++ )
		out += retval[i];
	return out;
}
if (!Array.prototype.indexOf) {
	Array.prototype.indexOf = function( val, fromIndex ) {
		if( typeof( fromIndex ) != 'number' ) fromIndex = 0;
		for( var index = fromIndex, len = this.length; index < len; index++ )
			if( this[index] == val ) return index;
		return -1;
	}
}
function padLeft( string, character, paddedWidth )
{
	if( string.length >= paddedWidth )
		return string;
	else
	{
		while( string.length < paddedWidth )
			string = character + string;
	}
	return string;
}
