var captchaBtn;
var captchaRefreshBtn;
var captchaButtonTime;
var captchaChanged;
var captchaBtnTexts = Array();
captchaBtnTexts["play"] = "Play Audio";
captchaBtnTexts["pause"] = "Pause Audio";
var logOutput="";

jQuery(document).ready(function() {

	if(jQuery("#captchaBtn").length)
	{
		captchaBtn = jQuery("#captchaBtn");
		captchaRefreshBtn = jQuery("#captchaRefresh");
		
		captchaChanged = true;
		captchaBtn.addClass('play')

		captchaBtn.click(function(){
			callAudioCaptcha(captchaBtn);
			return false;
		});
		
		captchaRefreshBtn.click(function(){
			captchaChanged = true;
			jQuery("#imagecaptcha").attr("src","/adsic/imagecaptcha?" + new Date().getTime());
			return false;
		});

		initCaptchaLogging();
	}
});

function setCaptchaBtnText(state) {
	captchaBtn.find("span").text(captchaBtnTexts[state]);
}

function callAudioCaptcha(object) {
	if(!captchaChanged)
	{
		doResume();
	} else {
		doPlay("/adsic/soundcaptcha?captcha.wav");
		captchaChanged = false;
	}
	setCaptchaBtnText("pause");
}

function resetCaptchaBtn() {
	captchaBtn.removeClass("pause").addClass("play");
	setCaptchaBtnText("play");
}

/*
 * getPlayer
 * return object depending on browser
 */
function getPlayer(pid) {
	var obj = document.getElementById(pid);
	if (obj.doPlay) return obj;
	for(i=0; i<obj.childNodes.length; i++) {
		var child = obj.childNodes[i];
		if (child.tagName == "EMBED") return child;
	}
}

function handleCaptchaEvent(event, arg1, arg2) {
	switch(event){
		case "PLAYER_PLAYING":
			captchaBtn.addClass("pause").removeClass("play");
			setCaptchaBtnText("pause");
		break;
		case "PLAYER_STOPPED":
			captchaBtn.removeClass("pause").addClass("play");
			setCaptchaBtnText("play");
		break;
		
	}
}

function initCaptchaLogging() {

	setTimeout(function() {
		var player = getPlayer('captchaPlayer');
		player.attachHandler('*', "handleCaptchaEvent")
	}, 500);
}

/*
 * doPlay
 * play a given captcha
 */
function doPlay(fname) {
	var player = getPlayer('captchaPlayer');
	player.doPlay(fname,0.01);
}

/*
 * doResume
 * repeat last captcha
 */
function doResume() {
	var player = getPlayer('captchaPlayer');
	player.doResume();
}


/* TESTING AND DEBUG FUNCTIONS */

function doStop() {
	var player = getPlayer('captchaPlayer');
	player.doStop();
}

function log(str) {
	//logOutput += str+"<br/>";
	//jQuery("#jsLog").html($("#jsLog").html()+"<br/>"+str);
}
