var kw_photoid = 0;
var kwajaxobj = null;
var alertedkws = new Array();
var alertedcats = new Array();
var alertedkwnum = 0;
var alertedcatnum = 0;

function kw_photoid_set(id) {
	kw_photoid = id;
}

function kw_showmessage(type, message) {
	var error = $('alertfeedback_error');
	var warn  = $('alertfeedback_warn');
	var ok  = $('alertfeedback_ok');

	try {
		switch(type) {
			case 'ok':
				ok.innerHTML = message;
				error.style.display = 'none';
				warn.style.display = 'none';
				ok.style.display = 'block';
				break;
			case 'warn':
				warn.innerHTML = message;
				ok.style.display = 'none';
				error.style.display = 'none';
				warn.style.display = 'block';
				break;
			default:
			case 'error':
				error.innerHTML = message;
				ok.style.display = 'none';
				warn.style.display = 'none';
				error.style.display = 'block';
			break;
		}
			
	} catch (e) {
		// incase an error occured.. alert the message.
		alert(message + e);
	}
}

function kw_callbackfunc(response) {

	kw_showmessage(response.type, response.message);
}

function ajaxencode(parameter) {
	return parameter.replace(/&/g, "%26");
}

function kw_onreadystatechange() {
	if (kwajaxobj.readyState == 4) {
		if (kwajaxobj.status == 200) {
			try {
				eval("var results = " + kwajaxobj.responseText);
				kw_callbackfunc(results);
			} catch(e) {
				kw_showmessage('error', 'Sorry there was a problem while submitting report');
			}
		}
	}
}


function kw_onclick_keyword(keyword, obj) {
	if (!alertedkws[keyword]) {
		// highlight obj keyword
		alertedkws[keyword] = 1;
		alertedkwnum++;
		obj.style.fontWeight='700';
		document.getElementById('alertckbox_keywords').checked = true;
	} else {
		// deselect obj keyword;
		alertedkws[keyword] = '';
		obj.style.fontWeight='400';
		if (--alertedkwnum == 0) {
			document.getElementById('alertckbox_keywords').checked = false;
		}
	}

	return false;	
}

function kw_onclick_category(keyword, obj) {
	if (!alertedcats[keyword]) {
		// highlight obj keyword
		alertedcats[keyword] = 1;
		alertedcatnum++;
		obj.style.fontWeight='700';
		document.getElementById('alertckbox_category').checked = true;
	} else {
		// deselect obj keyword;
		alertedcats[keyword] = '';
		obj.style.fontWeight='400';
		if (--alertedcatnum == 0) {
			document.getElementById('alertckbox_category').checked = false;
		}
	}
	return false;

}


function kw_onclick_show() {
	document.getElementById('keyworddisplayblock').style.display = 'none';
	document.getElementById('keywordreportblock').style.display = 'block';

	return false;
}

function kw_onclick_cancel() {
	document.getElementById('keyworddisplayblock').style.display = 'block';
	document.getElementById('keywordreportblock').style.display = 'none';

	return false;
}

function kw_onclick_submit() {

	try {
		var titlechecked = document.getElementById('alertckbox_title').checked;
		var descriptionchecked = document.getElementById('alertckbox_description').checked;
		var keywordschecked = document.getElementById('alertckbox_keywords').checked;
		var categorychecked = document.getElementById('alertckbox_category').checked;
		var keywordstr = '';
		for (var keyword in alertedkws) {
			if (alertedkws[keyword]>0) {
				keywordstr += keyword + '|';
			}
		}
		var catstr = '';
		for (var keyword in alertedcats) {
			if (alertedcats[keyword]>0) {
				catstr += keyword + '|';
			}
		}
		var comment = document.getElementById('alertcomment').value;
		var reporttype = '';
		if (titlechecked) reporttype += '1';
		else reporttype += '0';
		if (descriptionchecked) reporttype += '1';
		else reporttype += '0';
		if (keywordschecked) reporttype += '1';
		else reporttype += '0';
		if (categorychecked) reporttype += '1';
		else reporttype += '0';

		if (reporttype == '0000') {
			kw_showmessage('error', 'Please check at least one part of photo info (e.g. title) to report.');
			return false;
		} else if (keywordschecked && (keywordstr == '')) {
			kw_showmessage('error', 'Please click to select at least one keyword to report.. or uncheck the Keywords: report box.');
			return false;
		} else if (categorychecked && (catstr == '')) {
			kw_showmessage('error', 'Please check to select at least one category to report.. or uncheck the Categories: report box.');
			return false;
		}
		if (window.ActiveXObject) {
			kwajaxobj = new ActiveXObject('Microsoft.XMLHTTP');
		}
		else {
			kwajaxobj = new XMLHttpRequest();
		}

		kw_showmessage('ok', 'Submitting Information...');

		kwajaxobj.onreadystatechange = kw_onreadystatechange;
		kwajaxobj.open('POST', '/serverside/reportbadkw.php', true);
		kwajaxobj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		kwajaxstr = 'keywords='+ajaxencode(keywordstr)+'&categories='+ajaxencode(catstr)+'&photoid='+kw_photoid+'&comment='+ajaxencode(comment)+'&reporttype='+reporttype;
		kwajaxobj.send(kwajaxstr);
		kw_showmessage('ok', 'Submitting Information... [waiting for reply]');

	}
	catch (e) {
		kw_showmessage('error', 'While trying to submit your request an error occured; you may need to update your browser to a current version.');
	}

	return false;
}
