var language = 1;
var page = '';
var Global_bwidth = 0;
var Global_bheight = 0;

function swap_objects( formname, func, focused )
{
var elem = document.forms[ formname ].elements;
var chgbtn = document.getElementById( 'global_lang_edit' ).value;
var focusit = false;

for( var i = 0; i < elem.length; i++ )
	{
	if ( elem[i].type == "text" ) 
		if ( elem[ i ].className == 'txt_view' )
			{
			chgbtn = 'Save';
			elem[ i ].className = 'txt_edit';
			elem[ i ].readOnly = false;
			}
		else
			{
			chgbtn = 'Edit';
			elem[ i ].className = 'txt_view';
			elem[ i ].readOnly = true;
			}

	if ( elem[i].type == "textarea" ) 
		if ( elem[ i ].className == 'txt_view' )
			{
			chgbtn = document.getElementById( 'global_lang_save' ).value;
			elem[ i ].className = 'txt_edit';
			elem[ i ].disabled = false;
			}
		else
			{
			chgbtn = document.getElementById( 'global_lang_edit' ).value;
			elem[ i ].className = 'txt_view';
			elem[ i ].disabled = true;
			}

	if ( elem[i].type == "checkbox" )
		if ( elem[ i ].className == 'chk_view' )
			{
			elem[ i ].className = 'chk_edit';
			elem[ i ].disabled = false;
			elem[ i ].readonly = false;
			}
		else
			{
			elem[ i ].className = 'chk_view';
			elem[ i ].disabled = true;		
			elem[ i ].readonly = true;		
			}

	if ( elem[i].type == "select-one" )
		if ( elem[ i ].className == 'drp_view' )
			{
			elem[ i ].className = 'drp_edit';
			elem[ i ].disabled = false;
			elem[ i ].readonly = false;
			}
		else
			{
			elem[ i ].className = 'drp_view';
			elem[ i ].disabled = true;		
			elem[ i ].readonly = true;		
			}


	if ( elem[i].type == "radio" )
		if ( elem[ i ].className == 'rad_view' )
			{
			elem[ i ].className = 'rad_edit';
			elem[ i ].disabled = false;
			}
		else
			{
			elem[ i ].className = 'rad_view';
			elem[ i ].disabled = true;		
			}

	if ( elem[ i ].id == focused )
		{
		if ( document.forms[ formname ].btn_edit.value == document.getElementById( 'global_lang_save' ).value )
			elem[ i ].focus();
		}
		
	if ( elem[ i ].id == 'btn_edit' )
		if ( elem[ i ].value == document.getElementById( 'global_lang_edit' ).value )
			{
			elem[ i ].value = document.getElementById( 'global_lang_save' ).value;
			focusit = true;
			}
		else
			{
			var fCall = func + '(\'' + formname + '\');';

			try { eval( fCall ); }
			catch ( err )
				{
				alert( 'There was an error posting data. Error is:' + err );
				}

			elem[ i ].value = document.getElementById( 'global_lang_edit' ).value;
			}
	}		
}


function get_objects( formname )
{
var postFields = '';
try
	{
	var elem = document.forms[ formname ].elements;
	}
catch (err)
	{
	return '';
	}

for( var i = 0; i < elem.length; i++ )
	{
	if ( elem[i].tagName == "TEXTAREA" ) 
		{
		postFields += elem[i].name + "=" + escape( elem[i].value ) + "&";
		}

	if ( elem[i].tagName == "INPUT" ) 
		{
		if ( elem[i].type == "text" || elem[i].type == "hidden" || elem[i].type == "password") 
			{
			if ( elem[ i ].value != '+' )
				postFields += elem[i].name + "=" + escape( elem[i].value ) + "&";
			else
				{
				//12.8.2009 ghh added because encode doesn't work with plus signs
				postFields += elem[i].name + "=" + encodeURIComponent( elem[i].value ) + "&";
				}
			}

		if ( elem[i].type == "checkbox" ) 
			{
			if ( elem[i].checked ) 
				{
				postFields += elem[i].name + "=" + elem[i].checked + "&";
				postFields +=  "v_" + elem[i].name + "=" + elem[i].value + "&";
				} 
			else 
				{
				postFields += elem[i].name + "=&";
				}
			}

		if ( elem[i].type == "radio" ) 
			{
			if ( elem[i].checked) 
				{
				postFields += elem[i].name + "=" + elem[i].value + "&";
				}
			}
		}   

	if ( elem[i].tagName == "SELECT" ) 
		{
		var sel = elem[i];
		try
			{
			postFields += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
			}
		catch ( err )
			{

			}
		}
	}

return postFields;
}




function ajax_send( path, async, method, postFields, callback ) 
{
if (window.XMLHttpRequest) 
	{ // Mozilla, Safari, ...
	var xmlcon = new XMLHttpRequest();
	}
else 
	if (window.ActiveXObject) 
		{ // IE
		var xmlcon = new ActiveXObject("Microsoft.XMLHTTP");
		}

xmlcon.open(method, path, async);		

if ( method == 'POST' )
	{
	xmlcon.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	}
else
	postFields = null;


xmlcon.onreadystatechange = 
	function() 
		{
		if ( xmlcon.readyState == 4 || xmlcon.readyState == 'complete' ) 
			{
			callback.response = xmlcon.responseText;
			callback.push();
			}
		}
	
	
xmlcon.send( postFields );
return false;
}



//onReceive class called from ajax_send function
function onConnect( response, placement, callfunc, misc, misc2, misc3, misc4, misc5 )
{
this.response = response;
this.placement = placement;
this.callfunc = callfunc;
this.misc = misc;
this.misc2 = misc2
this.misc3 = misc3;
this.misc4 = misc4;
this.misc5 = misc5;
}
	
function push()
{
this.callfunc();
}

onConnect.prototype.push = push;



//opens video link for whatever video is passed in.
//TKS 6-29-10 added function to call php page and load movie in region with 
//layer overlay and styles
var comm_lizzy_get_video = new onConnect( false, false, call_lizzy_get_video );
var html5 = false;
var userhash = '';//12.20.2011 ghh - added to track userhash
var globalvideo = '';//12.20.2011 ghh - added to track video last viewed

function getVideo( video, special )
{
//12.20.2011 ghh - added to track current video being watched so we can record it.
globalvideo = video;

if ( special == undefined || special == '' )
	special = false;

if ( special == true )
	var path = 'video_script/lizzy_get_video2.php?video=' + video;
else
	var path = 'video_script/lizzy_get_video.php?video=' + video;

if (video.indexOf('webm') != -1)
	html5 = true;
else
	html5 = false;

comm_lizzy_get_video.callfunc = call_lizzy_get_video;

ajax_send( path, true, 'GET', null, comm_lizzy_get_video );
}


function call_lizzy_get_video()
{
window.scroll(0,0);
	var theWidth, theHeight;
	// Window dimensions:
	if (document.body) {
		theWidth=document.body.clientWidth;
	}
	if (document.body) {
		theHeight=document.body.clientHeight;
	}
	document.getElementById( 'video_overlay' ).style.width = theWidth + 'px';
	document.getElementById( 'video_overlay' ).style.height = theHeight + 'px';
	document.getElementById( 'video_overlay' ).style.display = 'block';
	document.getElementById( 'video_overlay' ).innerHTML = comm_lizzy_get_video.response;
	waitForVideoEnd();
}

function close_lizzy_video()
{
document.getElementById( 'video_overlay' ).style.display = 'none';
document.getElementById( 'video_overlay' ).innerHTML = '';
}

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

function waitForVideoEnd()
{
if (html5 == true)
	{
	var video = document.getElementById('html5video');
	video.addEventListener('ended', function(e){logCompletion();});
	}
else
	{
	flowplayer("player", "/flowplayer.swf", {clip:{onFinish: function(e){logCompletion();}}});
	}
}

var comm_logCompletion = new onConnect( false, false, call_logCompletion );
function logCompletion()
{
//console.log( globalvideo + "-" + userhash);

//12.20.2011 ghh - now we're going to call our ce page and pass it the two parameters so that it
//can log that this user has watched the video.
var path = 'ce_savevideo.php?userhash='+userhash+'&video='+globalvideo;
comm_logCompletion.callfunc = call_logCompletion;

ajax_send( path, true, 'GET', null, comm_logCompletion );
}

function call_logCompletion()
{
//alert( comm_lizzy_get_test.response );//uncomment line for testing
if ( comm_logCompletion.response.substring( 0,5 ) != 'Error' )
	{
	}
else
	alert( comm_logCompletion.response );
}

//##################################
//##################################
//##################################
//TKS 12.20.2011 added functions for pulling up traing video tests in video overlay
var comm_lizzy_get_test = new onConnect( false, false, call_lizzy_get_test );
function getTest( userhash, groupid, reset )
{
var path = 'video_script/lizzy_get_test.php?id=' + userhash + '&groupid=' + groupid + '&reset=' + reset;
comm_lizzy_get_test.callfunc = call_lizzy_get_test;

ajax_send( path, true, 'GET', null, comm_lizzy_get_test );
}


function call_lizzy_get_test()
{
window.scroll(0,0);
	var theWidth, theHeight;
	// Window dimensions:
	if (document.body) {
		theWidth=document.body.clientWidth;
	}
	if (document.body) {
		theHeight=document.body.clientHeight;
	}
	document.getElementById( 'video_overlay' ).style.width = theWidth + 'px';
	document.getElementById( 'video_overlay' ).style.height = theHeight + 'px';
	document.getElementById( 'video_overlay' ).style.display = 'block';
	document.getElementById( 'video_overlay' ).innerHTML = comm_lizzy_get_test.response;
}

function save_lizzy_get_test( userhash, groupid, questionid, ca )
{
var path = 'video_script/ce_lizzy_get_test.php?id=' + userhash + '&groupid=' + groupid;
path = path + '&question=' + questionid;
path = path + '&trackit=' + ca;
path = path + '&answer=' + get_radio_checked_value( 'rad_answer' );
comm_lizzy_get_test.callfunc = call_save_lizzy_get_test;
comm_lizzy_get_test.misc 	= ca;
comm_lizzy_get_test.misc1 	= userhash;
comm_lizzy_get_test.misc2 	= groupid;

ajax_send( path, true, 'GET', null, comm_lizzy_get_test );
}

function call_save_lizzy_get_test()
{
//alert( comm_lizzy_get_test.response );//uncomment line for testing
if ( comm_lizzy_get_test.response.substring( 0,5 ) != 'Error' )
	{
	//highlight the correct answer in green, and if they got it wrong, highlight in red
	//then reload for next question
	document.getElementById( 'reg_answer_' + comm_lizzy_get_test.misc ).className='borderall_green';
	if ( get_radio_checked_value( 'rad_answer' ) != comm_lizzy_get_test.misc )
		document.getElementById( 'reg_answer_' + get_radio_checked_value( 'rad_answer' ) ).className='borderall_red';

	setTimeout( "getTest( comm_lizzy_get_test.misc1, comm_lizzy_get_test.misc2, '' )", 3000 );
	}
else
	alert( comm_lizzy_get_test.response );
}

function get_radio_checked_value( radio_name )
{
radioObj = document.getElementsByName( radio_name );                 

//TKS 11-18-10 if the radio boxes are not on the page
//just return false
if ( !radioObj.length > 0 )
	return false;

for( var i = 0; i < radioObj.length; i++ )
	if( radioObj[ i ].checked ) 
		return radioObj[ i ].value;

return false;
}
//##################################
//##################################
//##################################

