/**
 * ==============================================================
 * File to contain all common javascript elements used in SBS 
 * sites but writing the queries using the jquery core library
 * ==============================================================
 */

/**
 * handles validation of comment forms
 * and submits the user-entered data
 * to a php script through ajax
 */
function makeComment(divName, baseUrl) 
{
	// set up variables
	var errorText = '';
	var formError = false;
	var userName = document.getElementById(divName + '_txt_name').value;
	var userLocation = document.getElementById(divName + '_txt_location').value;
	var email = document.getElementById(divName + '_txt_email').value;
	var title = document.getElementById(divName + '_txt_title').value;
	var comment = encodeURIComponent(document.getElementById(divName + '_txt_comment').value);
	var private_key = document.getElementById(divName + '_com_private_key').value;
	var public_key = document.getElementById(divName + '_public_key').value;
	var site_id = document.getElementById(divName + '_site_id').value;
	var parent_id = document.getElementById(divName + '_parent_id').value;
	var episode_id = document.getElementById(divName + '_episode_id').value;
	var redirect_url = encodeURIComponent(document.getElementById(divName + '_redirect_url').value);
	
	// do validation
	if(userName == "") {
		 errorText = errorText + "Please enter your name\n";
		 formError = true;
	}
	if(userLocation == "") {
		 errorText = errorText + "Please enter your suburb\n";
		 formError = true;
	}
	if(title == "") {
		 errorText = errorText + "Please enter a title or subject\n";
		 formError = true;
	}
	if(comment == "") {
		 errorText = errorText + "Please enter your comment\n";
		 formError = true;
	}
	if(private_key == "") {
		 errorText = errorText + "Please enter the validation number\n";
		 formError = true;
	}

	if(formError) {
		window.alert(errorText);
		return;
	};
	
	// set up the url data
	var url = encodeURI(
		baseUrl +
		'/ajax/getmakecommentdata' +
		'/name/' + userName +
		'/email/' + email +
		'/location/' + userLocation +
		'/title/' + title +
		'/message/' + comment +
		'/episode_id/' + episode_id +
		'/redirect_url/' + redirect_url +
		'/public_key/' + public_key +
		'/com_private_key/' + private_key +
		'/site_id/' + site_id + 
		'/parent_id/' + parent_id
	);
	
	// send the url via ajax to a php script
	// and refresh content after success
	jQuery.ajax({
		type: 'POST',
		url: url,
		data: {}, //  <- set empty data otherwise we get a content-length error (411)
		success: function(msg) {
			$('#' + divName).html(msg);
			recordStats(siteUrl + 'submit_comment/epid/' + episode_id + '/parentid/' + parent_id);
		}
	});
}



/**
 * sets the agree/disagree vote for comments
 */
function makeUserRating(divName, commentID, rating, episodeID, baseUrl) 
{
	//var divName = 'user_rating_' + commentID;
	var url = encodeURI(
		baseUrl +
		'/ajax/rate' +
		'/commentID/' + commentID +
		'/rating/' + rating +
		'/episode_id/' + episodeID
	);
	
	// send the url via ajax to a php script
	// and refresh content after success
	jQuery.ajax({
		type: 'POST',
		url: url,
		data: {}, //  <- set empty data otherwise we get a content-length error (411)
		success: function(msg) {
			$('#' + divName).html(msg);
			// remove the existing class and replace it based on the rating
			/*
			$('#' + divName).removeClass();
			$('#' + divName).addClass('rate');
			switch (rating) {
				case 0:
					$('#' + divName).addClass('disagree');
					break;
				case 1:
					$('#' + divName).addClass('agree');
					break;
			}
			*/
			recordStats(siteUrl + 'submit_rating/epid/' + episodeID + '/commentid/' + commentID);
		}
	});
	
	

}

/**
 * limits the number of characters allowed to 
 * for a message in the comment form
 */
function limitText(limitField, limitCount, limitNum) 
{
	if (limitField.value.length > limitNum) {
		 limitField.value = limitField.value.substring(0, limitNum);
	} else {
		limitCount.value = limitNum - limitField.value.length;
	}
}


/**
 * handles validation of comment forms
 * and submits the user-entered data
 * to a php script through ajax
 */
function makeSuggestion(divName, baseUrl) 
{
	// set up variables
	var errorText = '';
	var formError = false;

	var userFirst = document.getElementById(divName + '_first_name').value;
	var userLast = document.getElementById(divName + '_last_name').value;
	var userLocation = document.getElementById(divName + '_location').value;
	var userEmail = document.getElementById(divName + '_email').value;
	var comment = encodeURIComponent(document.getElementById(divName + '_comment').value);
	var private_key = document.getElementById(divName + '_com_private_key').value;
	var public_key = document.getElementById('public_key').value;
	var site_id = document.getElementById(divName + '_site_id').value;
	var redirect_url = encodeURIComponent(document.getElementById(divName + '_redirect_url').value);
	
	// do validation
	if(userFirst == "") {
		 errorText = errorText + "Please enter your name\n";
		 formError = true;
	}
	if(userLast == "") {
		 errorText = errorText + "Please enter your name\n";
		 formError = true;
	}
	if(userLocation == "") {
		 errorText = errorText + "Please enter your suburb\n";
		 formError = true;
	}
	if(userEmail == "") {
		 errorText = errorText + "Please enter a valid email address\n";
		 formError = true;
	}
	if(comment == "") {
		 errorText = errorText + "Please enter your comment\n";
		 formError = true;
	}
	if(private_key == "") {
		 errorText = errorText + "Please enter the validation number\n";
		 formError = true;
	}

	if(formError) {
		window.alert(errorText);
		return;
	};
	
	// set up the url data
	var url = encodeURI(
		baseUrl +
		'/ajax/suggest' +
		'/firstname/' + userFirst +
		'/lastname/' + userLast +
		'/location/' + userLocation +
		'/email/' + userEmail +
		'/comment/' + comment +
		'/redirect_url/' + redirect_url +
		'/public_key/' + public_key +
		'/com_private_key/' + private_key +
		'/site_id/' + site_id
	);
	
	// send the url via ajax to a php script
	// and refresh content after success
	jQuery.ajax({
		type: 'POST',
		url: url,
		data: {}, //  <- set empty data otherwise we get a content-length error (411)
		success: function(msg) {
			$('#' + divName).html(msg);
			recordStats(siteUrl + 'submit_suggestion/');
		}
	});
}
function shoutOut(divName, baseUrl) 
{
	// set up variables
	var errorText = '';
	var formError = false;

	var userFirst = document.getElementById(divName + '_first_name').value;
	var userLast = document.getElementById(divName + '_last_name').value;
	var userLocation = document.getElementById(divName + '_location').value;
	var userEmail = document.getElementById(divName + '_email').value;
	var comment = encodeURIComponent(document.getElementById(divName + '_comment').value);
	var private_key = document.getElementById(divName + '_com_private_key').value;
	var public_key = document.getElementById('public_key').value;
	var site_id = document.getElementById(divName + '_site_id').value;
	var redirect_url = encodeURIComponent(document.getElementById(divName + '_redirect_url').value);
	
	// do validation
	if(userFirst == "") {
		 errorText = errorText + "Please enter your name\n";
		 formError = true;
	}
	if(userLast == "") {
		 errorText = errorText + "Please enter your name\n";
		 formError = true;
	}
	if(userLocation == "") {
		 errorText = errorText + "Please enter your suburb\n";
		 formError = true;
	}
	if(userEmail == "") {
		 errorText = errorText + "Please enter a valid email address\n";
		 formError = true;
	}
	if(comment == "") {
		 errorText = errorText + "Please enter your comment\n";
		 formError = true;
	}
	if(private_key == "") {
		 errorText = errorText + "Please enter the validation number\n";
		 formError = true;
	}

	if(formError) {
		window.alert(errorText);
		return;
	};
	
	// set up the url data
	var url = encodeURI(
		baseUrl +
		'/ajax/shoutout' +
		'/firstname/' + userFirst +
		'/lastname/' + userLast +
		'/location/' + userLocation +
		'/email/' + userEmail +
		'/comment/' + comment +
		'/redirect_url/' + redirect_url +
		'/public_key/' + public_key +
		'/com_private_key/' + private_key +
		'/site_id/' + site_id
	);
	
	// send the url via ajax to a php script
	// and refresh content after success
	jQuery.ajax({
		type: 'POST',
		url: url,
		data: {}, //  <- set empty data otherwise we get a content-length error (411)
		success: function(msg) {
			$('#' + divName).html(msg);
			recordStats(siteUrl + 'submit_shoutout/');
		}
	});
}
function sendFeedback(divName, baseUrl) 
{
	// set up variables
	var errorText = '';
	var formError = false;

	var userFirst = document.getElementById(divName + '_first_name').value;
	var userLast = document.getElementById(divName + '_last_name').value;
	var userLocation = document.getElementById(divName + '_location').value;
	var userEmail = document.getElementById(divName + '_email').value;
	var comment = encodeURIComponent(document.getElementById(divName + '_comment').value);
	var private_key = document.getElementById(divName + '_com_private_key').value;
	var public_key = document.getElementById('public_key').value;
	var site_id = document.getElementById(divName + '_site_id').value;
	var redirect_url = encodeURIComponent(document.getElementById(divName + '_redirect_url').value);
	
	// do validation
	if(userFirst == "") {
		 errorText = errorText + "Please enter your name\n";
		 formError = true;
	}
	if(userLast == "") {
		 errorText = errorText + "Please enter your name\n";
		 formError = true;
	}
	if(userLocation == "") {
		 errorText = errorText + "Please enter your suburb\n";
		 formError = true;
	}
	if(userEmail == "") {
		 errorText = errorText + "Please enter a valid email address\n";
		 formError = true;
	}
	if(comment == "") {
		 errorText = errorText + "Please enter your comment\n";
		 formError = true;
	}
	if(private_key == "") {
		 errorText = errorText + "Please enter the validation number\n";
		 formError = true;
	}

	if(formError) {
		window.alert(errorText);
		return;
	};
	
	// set up the url data
	var url = encodeURI(
		baseUrl +
		'/ajax/feedback' +
		'/firstname/' + userFirst +
		'/lastname/' + userLast +
		'/location/' + userLocation +
		'/email/' + userEmail +
		'/comment/' + comment +
		'/redirect_url/' + redirect_url +
		'/public_key/' + public_key +
		'/com_private_key/' + private_key +
		'/site_id/' + site_id
	);
	
	// send the url via ajax to a php script
	// and refresh content after success
	jQuery.ajax({
		type: 'POST',
		url: url,
		data: {}, //  <- set empty data otherwise we get a content-length error (411)
		success: function(msg) {
			$('#' + divName).html(msg);
			recordStats(siteUrl + 'submit_feedback');
		}
	});
}

/**
 * handles validation of user 'ask a question' form
 * and submits the user-entered data
 * to a php script through ajax
 */
function makeAskQuestion(divName, baseUrl) 
{
	// set up variables
	var errorText = '';
	var formError = false;
	var userName = document.getElementById(divName + '_txt_name').value;
	var userLocation = document.getElementById(divName + '_txt_location').value;
	var subject = document.getElementById(divName + '_txt_subject').value;
	var question = encodeURIComponent(document.getElementById(divName + '_txt_question').value);
	var private_key = document.getElementById(divName + '_com_private_key').value;
	var public_key = document.getElementById(divName + '_public_key').value;
	var site_id = document.getElementById(divName + '_site_id').value;
	var episode_id = document.getElementById(divName + '_episode_id').value;
	
	// do validation
	if(userName == "") {
		 errorText = errorText + "Please enter your name\n";
		 formError = true;
	}
	if(userLocation == "") {
		 errorText = errorText + "Please enter your suburb\n";
		 formError = true;
	}
	if(subject == "") {
		 errorText = errorText + "Please enter a title or subject\n";
		 formError = true;
	}
	if(question == "") {
		 errorText = errorText + "Please enter your question\n";
		 formError = true;
	}
	if(private_key == "") {
		 errorText = errorText + "Please enter the validation number\n";
		 formError = true;
	}

	if(formError) {
		window.alert(errorText);
		return;
	};
	
	// set up the url data
	var url = encodeURI(
		baseUrl +
		'/ajax/askquestion' +
		'/name/' + userName +
		'/location/' + userLocation +
		'/subject/' + subject +
		'/question/' + question +
		'/episode_id/' + episode_id +
		'/public_key/' + public_key +
		'/com_private_key/' + private_key +
		'/site_id/' + site_id
	);
	
	// send the url via ajax to a php script
	// and refresh content after success
	jQuery.ajax({
		type: 'POST',
		url: url,
		data: {}, //  <- set empty data otherwise we get a content-length error (411)
		success: function(msg) {
			$('#' + divName).html(msg);
			recordStats(siteUrl + 'ask_question/epid/' + episode_id);
		}
	});
}

function recordStats(url)
{
	_rsEvent(url, '0');
}

function goto(url)
{
	location.href=url;
	location.reload(true);
}

function popupVideo(url) {
	window.open(url,'video','height=661,width=951,top=100,left=100,scrollbars=no,toolbars=no');
}

