var gBajax = createRequest();

function createRequest() {
	var obj;
	var browser = navigator.appName;
	if(browser == "Microsoft Internet Explorer"){
        obj = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        obj = new XMLHttpRequest();
    }
    return obj;
}

function loadBranches(rootNum, type, action) {
	var root = document.getElementById("branch_"+rootNum);

	var branches = root.getElementsByTagName("li");
	/*
	var nodeNums = new Array();
	for(i = 0; i < branches.length; i++) {
		nodeNums[i] = branches[i].id.substring(5);
	}

	for (i = 0; i < nodeNums.length; i++) {
		var nodeNum = nodeNums[i];

		gBajax.open('get','treecontrol.php?node='+nodeNum);
		gBajax.onreadystatechange = function () {
			addBranch(nodeNum);
		};
		gBajax.send(null);
	}
	*/

	var nodeNums = new Array();
	for(i = 0; i < branches.length; i++) {
		nodeNums[i] = branches[i].id.substring(5);
	}

	for (i = 0; i < nodeNums.length; i++) {
		var nodeNum = nodeNums[i];

		gBajax.open('get', URL+ROOT+'treecontrol.php?node='+nodeNum+'&type='+type+'&action='+action, true);
		gBajax.onreadystatechange = function () {
			addBranch(nodeNum);
		};
		gBajax.send(null);
	}

}

function addBranch(nodeNum) {
	if(gBajax.readyState == 4) {
		var response = gBajax.responseText;

		//var element = document.createElement("text");
		//element.innerHTML = response;
		var parent = document.getElementById("node_"+nodeNum);
		//alert(nodeNum);

		//document.getElementById("debug").innerHTML += response;
		//var oldContent = parent.innerHTML;

		if(response != '') {
			document.getElementById(parent.id + "_marker").className = "expand";
			parent.innerHTML += response;
		}

		//parent.appendChild(element);
		//document.getElementById("node_"+nodeNum).innerHTML += response;
	}
}

function openBranches() {
	var listRoot = document.getElementById("branch_0");
	var lists = listRoot.getElementsByTagName('ul');
	for(i = 0; i < lists.length; i++) {
		list = lists[i];

		getSessionVar(list.id);

		if(session[list.id]) {
			list.style.display = session[list.id];
			if(session[list.id] == 'block') {
				document.getElementById( list.id.replace('branch','node')+'_marker' ).className = 'collapse';
			}
		}
	}
}

/***********************************************************
* select folder in rte_image pop-up window
***********************************************************/
function selectLibraryFolder(folder) {
	gBajax.open('get', URL+ROOT+'admin/ajax.php?action=selectLibraryFolder&folder='+folder);
	gBajax.onreadystatechange = selectLibraryFolderResponse;
	gBajax.send(null);
}
function selectLibraryFolderResponse() {
	if(gBajax.readyState == 4){
		// this is the content of the called page
        var response = gBajax.responseText;

       	//process the response
       	if( response ) {
       		document.getElementById('rte_library').innerHTML = response;
       	}
    }
}


/***********************************************************
* select image in rte_image pop-up window
***********************************************************/
function selectLibraryImage(id) {
	gBajax.open('get', URL+ROOT+'admin/ajax.php?action=selectLibraryImage&id='+id);
	gBajax.onreadystatechange = selectLibraryImageResponse;
	gBajax.send(null);
}
function selectLibraryImageResponse() {
	if(gBajax.readyState == 4){
		// this is the content of the called page
        var response = gBajax.responseText;

       	//process the response
       	if( response ) {
			var res = response.split("|");
			/*
			r[0] = id of image or "no"
			r[1] = url of image
			r[2] = alt of image
			*/
			if( res[0] == 'no' ) {
				alert('The selected image could not be found. Please try again.');
			}
			else {
				document.getElementById('selected_image_id').value = res[0];
				document.getElementById('selected_image_url').value = res[1];
				document.getElementById('selected_image_alt').value = res[2];
				var tables = document.getElementById('thumbnails').getElementsByTagName('table');
				for( var t=0; t < tables.length; t++ ) {
					tables[t].className = '';
				}
				document.getElementById('image_' + res[0]).className = 'selected_image';
			}
       	}
    }
}


/***********************************************************
* select folder in rte_image pop-up window
***********************************************************/
function selectLibraryParentCategory() {
	gBajax.open('get', URL+ROOT+'admin/ajax.php?action=selectLibraryParentCategory');
	gBajax.onreadystatechange = selectLibraryParentCategoryResponse;
	gBajax.send(null);
}
function selectLibraryParentCategoryResponse() {
	if(gBajax.readyState == 4){
		// this is the content of the called page
        var response = gBajax.responseText;

       	//process the response
       	if( response ) {
       		document.getElementById('rte_library').innerHTML = response;
       	}
    }
}


/***********************************************************
* cycle through pages of images
***********************************************************/
function cycleLibraryImages(start) {
	gBajax.open('get', URL+ROOT+'admin/ajax.php?action=getLibraryThumbnails'+start);
	gBajax.onreadystatechange = cycleLibraryImagesResponse;
	gBajax.send(null);
}
function cycleLibraryImagesResponse() {
	if(gBajax.readyState == 4){
		// this is the content of the called page
        var response = gBajax.responseText;
       	//process the response
       	if( response ) {
       		document.getElementById('rte_library').innerHTML = response;
       	}
    }
}

/***********************************************************
 *
 ***********************************************************/

function processSurvey()
{
	var objElement = document.getElementById("hfNumItem");

	if(objElement != null)
	{
		var count = objElement.value;
		var survey_id = 0;
		var item_id = 0;
		var answer_type = "";
		var selected_option_id = 0;
		var input_text = "";
		var full_name = "";
		var result_group_no = 0;

		//Get Survey Id
		objElement = document.getElementById("hfSurveyId");

		if(objElement != null) survey_id = objElement.value;

		//Get Name
		objElement = document.getElementById("full_name");

		if(objElement != null) full_name = objElement.value;
		else full_name = "Anonymous";

		//Get Result Group No
		objElement = document.getElementById("hfResultGroupNo");

		if(objElement != null) result_group_no = objElement.value;
		else result_group_no = 1;

		for(var i=1; i <= count; i++)
		{
			selected_option_id = 0;
			item_id = 0;
			answer_type = "";
			input_text = "";

			//Get Item Id
			objElement = document.getElementById("hfItemId" + i);

			if(objElement != null)
			{
				item_id = objElement.value;
			}
			else
			{
				item_id = 0;
			}

			//Get Item Type
			objElement = document.getElementById("hfAnswerType" + i);

			if(objElement != null)
			{
				answer_type = objElement.value;
			}
			else
			{
				answer_type = "";
			}

			//Get Item Id
			objElement = document.getElementById("hfItemId" + i);
			if(objElement != null)	item_id = objElement.value;

			//Process Survey
			if(answer_type == "True/False")
			{
				//Find out which option was selected
				objElement = document.getElementById("rbList" + i + "_Yes");

				if(objElement != null)
				{
					if(objElement.checked) input_text = "True";
					else input_text = "False";
				}
				else
				{
					input_text = "False";
				}

			}
			else if(answer_type == "Multiple Choice")
			{
				//Find out how many choice does this survey item have
				objElement = document.getElementById("hfNumOption" + i);

				if(objElement != null)
				{
					var	count = objElement.value;
					for(var x=1; x <= count; x++)
					{
						objElement = document.getElementById("rbList" + i + "_" + x);

						if(objElement != null)
						{
							if(objElement.checked)
							{
								selected_option_id = objElement.value;
								break;
							}
						}
					}
				}
			}
			else //Short Answer
			{
				objElement = document.getElementById("txtItemText" + i);
				if(objElement != null)	input_text = objElement.value;
			}
				gBajax = createRequest()
				gBajax.open('get', URL+ROOT+'process_survey.php?survey_id=' + survey_id + '&answer_type=' + answer_type + '&item_id=' + item_id + '&input_text=' + input_text + '&selected_option_id=' + selected_option_id + '&full_name=' + full_name + '&result_group_no=' + result_group_no);
				gBajax.onreadystatechange = processSurveyResponse;
				gBajax.send(null);
		}
	}

	return false;
}

function processSurveyResponse() {

	if(gBajax.readyState == 4){
		// this is the content of the called page
        var response = gBajax.responseText;
       	//process the response
       	if( response == "success")
       	{
			var obj = document.getElementById("divSurvey");

			if(obj != null)
			{
				obj.style.display = "none";
			}

			obj = document.getElementById("divThankYou");

			if(obj != null)
			{
				obj.style.display = "";
			}
       	}
       	else
       	{
       		alert("Failed to submit survey result.\r\n" +
       			  "Please contact web team regarding this message.");
       	}
    }

}


function email_event(){

	var from = escape(document.getElementById('email_from').value);
	var to = escape(document.getElementById('email_to').value);
	var pg = document.getElementById('pg').value;
	var text_id = document.getElementById('text_id').value;
	var title = escape(document.getElementById('event_name').innerHTML);

	gBajax.open('get', URL+ROOT+'ajax.php?action=email_event&from='+from+'&to='+to+'&pg='+pg+'&text_id='+text_id+'&title='+title);
	gBajax.onreadystatechange = email_eventResponse;
	gBajax.send(null);

}

function email_eventResponse(){

	if(gBajax.readyState == 4){
		//this is the content of the called page
        var response = gBajax.responseText;

       	//process the response
   		if( response == 'success' ){
       		document.getElementById('email_from').value = "";
       		document.getElementById('email_to').value = "";
       		location.reload(true);
   		}
   		else{
   			alert("We're sorry, there was a problem while trying to email this event. Please check the email address and try again.");
   		}


    }
}

/***********************************************************
* login for publications
***********************************************************/

function lightboxLoadContent(strLightboxName, height, redirect, pid, pkey, type)
{
    document.getElementById('lightbox').style.height = height+'px';

    gBajax.open('get', URL+ROOT+'ajax_lightbox_load.php?lightbox_type='+strLightboxName+'&redirect='+redirect+'&pid='+pid+'&pkey='+pkey+'&type='+type);
    gBajax.onreadystatechange = lightboxLoadContentResponse;
    gBajax.send(null);
}

function lightboxLoadContentResponse()
{
    if(gBajax.readyState == 4)
    {
        // this is the content of the called page
        var response = gBajax.responseText;

        //process the response
        if( response )
        {
            document.getElementById('lightbox').innerHTML    = response;
       	}
    }
}

function lightboxAccountLogin()
{
    var redirect    = escape(document.getElementById('login_redirect').value);
    var email       = document.getElementById('login_email').value;
    var password    = document.getElementById('login_password').value;
    var pid         = document.getElementById('login_pid').value;
    var pkey        = document.getElementById('login_pkey').value;
    var type        = document.getElementById('login_type').value;

    gBajax.open('get', URL+ROOT+'account_handler.php?action=login&email='+email+'&password='+password+'&redirect='+redirect+'&pid='+pid+'&pkey='+pkey+'&type='+type);
    gBajax.onreadystatechange = lightboxAccountLoginResponse;
    gBajax.send(null);
}

function lightboxAccountLoginResponse()
{
    if(gBajax.readyState == 4)
    {
        // this is the content of the called page
        var response = gBajax.responseText;

        //process the response
        if( response )
        {
            var arrResponse = response.split("|");
            result       = arrResponse[0];
            redirect     = arrResponse[1];

            if(result == '0')
            {
                document.getElementById('login_error_message').style.display    = 'block';
            }
            else
            {
                if(redirect == '0')
                {
                    document.getElementById('logged_in_block').style.display    = 'block';
                    document.getElementById('logged_out_block').style.display   = 'none';
                    lightbox.hide();
                }
                else
                {
					location.href = redirect;
                }
            }
       	}
    }
}

function lightboxAccountForgot()
{
    var last_name   = document.getElementById('last_name').value;
    var email       = document.getElementById('login_email').value;

    gBajax.open('get', URL+ROOT+'account_handler.php?action=forgot&email='+email+'&last_name='+last_name);
    gBajax.onreadystatechange = lightboxAccountForgotResponse;
    gBajax.send(null);
}

function lightboxAccountForgotResponse()
{
    if(gBajax.readyState == 4) {
        // this is the content of the called page
        var response = gBajax.responseText;

        //process the response
        if( response ) {
            var arrResponse = response.split("|");
            result       = arrResponse[0];

            if(result == '0') {
                document.getElementById('forgot_error_message').style.display    = 'block';
            } else {
                document.getElementById('forgot_success_message').style.display    = 'block';
            }
       	}
    }
}

function lightboxAccountSignup()
{
    var redirect        = escape(document.getElementById('signup_redirect').value);
    var first_name      = document.getElementById('signup_first_name').value;
    var last_name       = document.getElementById('signup_last_name').value;
    var email           = document.getElementById('signup_email').value;
    var phone           = document.getElementById('signup_phone').value;
    var address         = document.getElementById('signup_address').value;
    var city            = document.getElementById('signup_city').value;
    var state           = document.getElementById('signup_state').value;
    var zip             = document.getElementById('signup_zip').value;
    var organization    = document.getElementById('signup_organization').value;
    var job_title       = document.getElementById('signup_job_title').value;
	// var security_question = document.getElementById('signup_security_question').value;
	// var answer          = document.getElementById('signup_answer').value;
    var password        = document.getElementById('signup_password').value;
    var password_retype = document.getElementById('signup_password_retype').value;
    var cid             = ''; //{$_REQUEST['cid']}';
    var pid             = ''; //{$_REQUEST['pid']}';

    gBajax.open('get', URL+ROOT+'account_handler.php?action=signup&first_name='+first_name+'&last_name='+last_name+'&email='+email+'&phone='+phone+'&address='+address+'&city='+city+'&state='+state+'&zip='+zip+'&organization='+organization+'&job_title='+job_title+'&password='+password+'&password_retype='+password_retype+'&redirect='+redirect+'&cid='+cid+'&pid='+pid);
    gBajax.onreadystatechange = lightboxAccountSignupResponse;
    gBajax.send(null);
}

function lightboxAccountSignupResponse()
{
    if(gBajax.readyState == 4)
    {
        // this is the content of the called page
        var response = gBajax.responseText;

        //process the response
        if( response )
        {
            var arrResponse = response.split("|");
			result       = arrResponse[0];
            redirect     = arrResponse[1];

            if(result != '1')
            {
                document.getElementById('signup_error_message').style.display = 'block';
				document.getElementById('signup_error_message').innerHTML     = result;
            }
            else
            {
                if(redirect == '0')
                {
                    document.getElementById('logged_in_block').style.display    = 'block';
                    document.getElementById('logged_out_block').style.display   = 'none';
                    lightbox.hide();
                }
                else
                {
                    location.replace(redirect);
                }
            }
       	}
    }
}

function lightboxEmailPublication()
{
    var redirect        = escape(document.getElementById('email_redirect').value);
    var name            = document.getElementById('email_name').value;
    var address         = document.getElementById('email_address').value;
    var cid             = ''; //{$_REQUEST['cid']}';
    var pid             = document.getElementById('email_pid').value;

    gBajax.open('get', URL+ROOT+'account_handler.php?action=email&name='+name+'&address='+address+'&redirect='+redirect+'&pid='+pid);
    gBajax.onreadystatechange = lightboxEmailPublicationResponse;
    gBajax.send(null);
}

function lightboxEmailPublicationResponse()
{
    if(gBajax.readyState == 4)
    {
        // this is the content of the called page
        var response = gBajax.responseText;

        //process the response
        if( response )
        {
            var arrResponse = response.split("|");
            result       = arrResponse[0];
            redirect     = arrResponse[1];

            if(result == '0')
            {
                document.getElementById('email_error_message').style.display = 'block';
            }
            else
            {
                lightboxLoadContent('email_success', 200, '');
            }
       	}
    }
}
