//*****************************************************
// hm-common.js
//
// Common javascript functions for the HorseMojo site.
//
//*****************************************************
var http = "";
var target = "";

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

function handleResponse () {
	if (http.readyState == 4) {
		var response = http.responseText;
		document.getElementById(target).innerHTML = response;
	}
}

function handleEditResponse () {
	if (http.readyState == 4) {
		document.forms['refresh_page'].submit();
		return false;
	}
}

function handleDelResponse () {
	if (http.readyState == 4) {
		document.forms['refresh_page'].submit();
		return false;
	}
}

function load_edit_object (object) {
	var postdata = "display_obj=" + object;
	target = object;
	http = createRequestObject();
	http.open('post', '/cgi-bin/display-object.cgi');
	http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
	http.onreadystatechange = handleResponse;
	http.send(postdata);
}

function close_edit_object (object) {
	document.getElementById(object).innerHTML = '';
}

function submitEdit (formName) {
	var postdata = "test=1";
	for (var i=0; i < document.forms[formName].elements.length; i++) {
		postdata = postdata +
		'&'+
		document.forms[formName].elements[i].name +
		'='+
		escape(document.forms[formName].elements[i].value);
	}
	http = createRequestObject();
	http.open('post', '/cgi-bin/profile.cgi');
	http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
	http.onreadystatechange = handleEditResponse;
	http.send(postdata);	
}

function deleteObject (delString) {
	//alert("In common file.");
	var postdata = delString;
	//alert("PD: "+delString);
	http = createRequestObject();
	http.open('post', '/cgi-bin/delete-object.cgi');
	http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
	http.onreadystatechange = handleDelResponse;
	http.send(postdata);	
}

function showMessage (container, message) {
	document.getElementById(container).innerHTML = message;
}

function checkSignup () {
	var errorMsg = "";
	if (document.forms['new_signup'].elements['username'].value.length < 4) {
		errorMsg = errorMsg + "Username should be at least 4 characters.\n";
	}
	if (document.forms['new_signup'].elements['email'].value == "") {
		errorMsg = errorMsg + "Missing email address.\n";
	}
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	if(document.forms['new_signup'].elements['email'].value.match(emailExp)){
		// email ok
	} else {
		errorMsg = errorMsg + "Please check your email address.\n";
	}
	if (document.forms['new_signup'].elements['password'].value.length < 6) {
		errorMsg = errorMsg + "Password should be at least 6 characters.\n";
	}
	if (document.forms['new_signup'].elements['password'].value != document.forms['new_signup'].elements['confirm_password'].value) {
		errorMsg = errorMsg + "Password entries don't match\n";
	}
	//if (document.forms['new_signup'].elements['dob_month'].value == "") {
	//	errorMsg = errorMsg + "Missing birthday month.\n";
	//}
	//if (document.forms['new_signup'].elements['dob_day'].value == "") {
	//	errorMsg = errorMsg + "Missing birthday day.\n";
	//}
	//if (document.forms['new_signup'].elements['dob_year'].value == "") {
	//	errorMsg = errorMsg + "Missing birthday year.\n";
	//}
	//if (document.forms['new_signup'].elements['hometown'].value == "") {
	//	errorMsg = errorMsg + "Missing hometown.\n";
	//}
	var radioGenderChecked = 0;
	if (document.forms['new_signup'].elements['gender'][0].checked) {radioGenderChecked = 1;}
	if (document.forms['new_signup'].elements['gender'][1].checked) {radioGenderChecked = 1;}
	if (!radioGenderChecked) {
		errorMsg = errorMsg + "Please provide your gender.\n";
	}
	if (!document.forms['new_signup'].elements['agree_terms'].checked) {
		errorMsg = errorMsg + "You must agree to the terms and conditions.\n";
	}
	if (errorMsg) {
		var printMsg = "Please fix the following errors before continuing:\n\n" + errorMsg;
		alert(printMsg);
		return false;
	} else {
		document.forms['new_signup'].submit();
	}
	return false;
}

function countCharsComments() {
    var maxLen = 200;
    var inputStr = document.forms['add_comment'].elements['comment'].value;
    var stringLen = inputStr.length;
    if (stringLen>maxLen) {
	document.forms['add_comment'].elements['comment'].value = document.forms['add_comment'].elements['comment'].value.substring(0,maxLen);
	stringLen = maxLen;
    }
    var remaining = maxLen - stringLen;
    document.getElementById('comment_char_remaining').innerHTML = remaining+' chars left';
}

function countVidCommentChars() {
    var maxLen = 200;
    var inputStr = document.forms['upload_video'].elements['video_comment'].value;
    var stringLen = inputStr.length;
    if (stringLen>maxLen) {
	document.forms['upload_video'].elements['video_comment'].value = document.forms['upload_video'].elements['video_comment'].value.substring(0,maxLen);
	stringLen = maxLen;
    }
    var remaining = maxLen - stringLen;
    document.getElementById('comment_char_remaining').innerHTML = remaining+' chars left';
}

function countBlogCommentChars() {
    var maxLen = 1000;
    var inputStr = document.forms['blog_entry'].elements['blog_comment'].value;
    var stringLen = inputStr.length;
    if (stringLen>maxLen) {
	document.forms['blog_entry'].elements['blog_comment'].value = document.forms['blog_entry'].elements['blog_comment'].value.substring(0,maxLen);
	stringLen = maxLen;
    }
    var remaining = maxLen - stringLen;
    document.getElementById('comment_char_remaining').innerHTML = remaining+' chars left';
}

function handleCheckRememberResponse () {
	if (http.readyState == 4) {
		var response = http.responseText;
		var update = response.split('|');
		if (update[0] == 'yes') {
			document.forms['login'].elements['remember'].checked = 'yes';
			document.forms['login'].elements['username'].value = update[1];
		}
	}
}

function checkRemember () {
	var postdata = "";
	http = createRequestObject();
	http.open('post', '/cgi-bin/check-remember.cgi');
	http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
	http.onreadystatechange = handleCheckRememberResponse;
	http.send(postdata);    
}

function checkBlogEntry () {
	var errorMsg = "";
	if (document.forms['blog_entry'].elements['blog_title'].value == "") {
		errorMsg = errorMsg + "Missing blog title.\n";
	}
	if (document.forms['blog_entry'].elements['blog_comment'].value == "") {
		errorMsg = errorMsg + "Missing blog comment.\n";
	}
	if (document.forms['blog_entry'].elements['blog_date'].value == "") {
		errorMsg = errorMsg + "Missing blog date (YYYY-MM-DD - temp field for Tom).\n";
	}
	if (errorMsg) {
		var printMsg = "Please fix the following errors before continuing:\n\n" + errorMsg;
		alert(printMsg);
		return false;
	} else {
		document.forms['blog_entry'].submit();
	}
	return false;
}
