var token;
var quoteArray = ["Discover customer service related issues.", "Maximize current customer potential.", "Increase revenue on improved services."];
var quoteIndex = 0;

function ajaxRequestor(action, data, handlerTrue, handlerFalse, pub) {
	if(pub === true)
		var url = '/inc/ajaxPub.php';
	else
	{
		var url = '/inc/ajax.php';
		Jq("#loadingNote").show();	
	}
	new Ajax.Request(url, {
		method: 'post',
		postBody: 'action='+action+'&'+data+'&zb='+token,	
		onSuccess: function(transport) {
			response = transport.responseText.evalJSON(true);
			if(response.response.match(/true/))
				handlerTrue(response); 
			else
				handlerFalse(response);
			Jq("#loadingNote").hide();	
		}
	});
}

function handleSignupClick() {
	Jq("#rightContent").fadeTo('slow', 0, function() {
		$('rightContent').innerHTML = signup_html;
		Jq("#rightContent").fadeTo('slow', 1, function() {
				Jq("#submitDIV").click(handleSubmitSignup);
			});
		
		});
	
	
}

function handleSubmitSignup() {
	$("username_label").setStyle({color:'black'});
	$("email_label").setStyle({color:'black'});

	if(!Jq("#signup_username").attr("value") || (Jq("#signup_username").attr("value") == ""))
		$("username_label").setStyle({color:'red'});
	else if(!Jq("#signup_email").attr("value"))
		$("email_label").setStyle({color:'red'});
	else {
		Jq("#submitDIV").text('Sending...');
		ajaxRequestor('submitSignup', 'username='+Jq("#signup_username").attr("value")+'&email='+Jq("#signup_email").attr("value"), submitSignup, submitSignup, true)
	}
	
}

function submitSignup(response)
{
	if(response.response.match(/true/)) {
		$("signup_inner").innerHTML = 'Sign up complete.  Please check your email for login details.';
	}
	else {
		$("signup_inner").innerHTML = 'Username or email already in use, please try again.';
	}
}

function handleLoginClick() {
	if(!Jq("#login_username_input").attr("value"))
		$("login_username_input").setStyle({color:'white'});
	else if(!Jq("#login_password_input").attr("value"))
		$("login_password_input").setStyle({color:'white'});
	else {
		ajaxRequestor('login', 'username='+Jq("#login_username_input").attr("value")+'&password='+hex_sha1(hex_sha1(Jq("#login_password_input").attr("value"))+Jq("#cvslt").attr('value')), submitLogin, submitLogin, true)
	}
}

function submitLogin(response, reload) {
	if(reload == true) {
		ajaxRequestor('login', null, submitLogin, submitLogin, true);
	}
	else if(response) {
		if(response.response.match(/true/)) {
			Jq("#outerContent").hide();
			token = response.t;
			loadAdminListeners();
		}
	}
}

function loadAdminListeners() {
	Jq("#login_box").hide();
	Jq("#main_admin").show();
	Jq(".menu_link").click(handleMenuItemClick);
	loadPage('ratings');
}

function setActiveMenuOption(id) {
	Jq('.menu_link').removeClass('active_menu_link');
	$(id).addClassName('active_menu_link');
}

function handleMenuItemClick(e) {
	switch(e.target.parentNode.id) {
		case 'menu_ratings':
			loadPage('ratings');
			
		break;
		
		case 'menu_preferences':
			loadPage('preferences');

		break;
		
		case 'menu_logout':
			Jq('#mid_pane').aqLayer({attach: 'ne'});
			Jq('#mid_pane').aqLayer('Logging out..');
			ajaxRequestor('logout', null, handleLogout, handleLogout);
		break;
	}
	return false;
}

function loadPage(page) {
	//$('mid_pane').innerHTML = 'Loading...';

	ajaxRequestor('loadPaneHTML', 'page='+page, handlePaneLoad, handlePaneLoad);
	setActiveMenuOption('menu_'+page);
}

function handlePaneLoad(response) {
	$('mid_pane').innerHTML = response.paneHTML;
	var obj = response.jsObj;
	eval("new "+obj+"()");
}

function handleLogout(reponse) {
	if(response.response.match(/true/)) {
		Jq("#mid_pane").aqLayer('hide');
		window.location = "http://clientvoicepro.com";
		
	}
}

function handleListeners() {
	if($('rightContent')) {
		if($('signup_box')) {
			Jq("#signup_box").click(handleSignupClick);
		}
	}
	if($('login_box')) {
		Jq("#login_submit").click(handleLoginClick);
	}
	if($$(".public_question_box")) {
		Jq(".public_answers_answer").mouseover(handlePublicAnswerMouseover);
		Jq(".public_answers_answer").mouseout(handlePublicAnswerMouseout);
		Jq(".public_answers_answer").click(handlePublicAnswerClick);
		Jq("#sendingDIV").jqm();
	}
	if($('bottomRightContent')) {
		new PeriodicalExecuter(rollQuote, 5);
	}	
}

function rollQuote() {		
	Jq("#bottomRightContent").fadeTo(1300, 0, function() {
		$('bottomRightContent').innerHTML = quoteArray[quoteIndex];
		Jq("#bottomRightContent").fadeTo(1300, 1);
	});
	
	if(quoteIndex < (quoteArray.length-1))
		quoteIndex = quoteIndex+1;
	else
		quoteIndex = 0;

}

function handlePublicAnswerMouseover(e) {
	var answerID = e.target.id.replace("public_question_", "");
	answerID = answerID.split("_");
	answerID = answerID[2];
	Jq("#answer_status_"+answerID).html('<div style="float:left; margin-top:5px; width:10px; height:10px; background-color:#000000;"></div>');
  	//Jq("#"+answerID).animate({ backgroundColor: "#1569C7" }, 200);
}
function handlePublicAnswerMouseout(e) {
	var answerID = e.target.id.replace("public_question_", "");
        answerID = answerID.split("_");
        answerID = answerID[2];        
	Jq("#answer_status_"+answerID).text("");
  	//Jq("#"+answerID).animate({ backgroundColor: "white" }, 200);
}
function handlePublicAnswerClick(e) {
	var answerID = e.target.id;
  	Jq("#sendingDIV").jqmShow();
  	ajaxRequestor('submitAnswer', 'rating_id='+Jq('#ratingInput').attr('value')+'&answer='+answerID+'&z='+Jq("#ratingID").attr('value'), handleSubmitPublicAnswer, handleSubmitPublicAnswer, true);
}

function handleSubmitPublicAnswer(response) {
	if(response.response.match(/true/)) {
	  		Jq("#sendingDIV").jqmHide();
	  		Jq("#outer_public_DIV").hide();
	  		var thanksDIV = document.createElement('div');
	  		thanksDIV.id = 'thanksDIV';
	  		thanksDIV.innerHTML = response.HTML;
	  		thanksDIV.className = 'public_question_box_white';
			$('content').appendChild(thanksDIV);
	  		Jq("#thanksDIV").fadeTo(8000, 1);  			
	}
}


Jq(document).ready(handleListeners);

