function amwlpocb(data)
{	
	if ( 
		(null != data) &&
		(typeof data.amwlpostr != 'undefined') &&
		(0 != data.amwlpostr.length)
		) {
		document.getElementById('amwlpo').innerHTML = data.amwlpostr;
	}
}

(
function()
{
	function GetRefererString()
	{
		var pattern = /[&\?](p|q|phrase|query|MT|qt|searchText|kw)=([^&]+)/i;
		var ret = document.referrer.match(pattern);
		if (ret) {
			return ret[2];
		}
		return null;
	}
	
	function GetMetaData(name)
	{
		var items = document.getElementsByTagName("meta");
		for (var i=0;i<items.length;i++) {
			if (name == items[i].name) {
				return items[i].content;
			}
		}
		return null;
	}

	function GetQueryString()
	{
		var q = GetRefererString();
		
		if (!q) {
			if ( !(q=GetMetaData('amwlpo_keywords')) ) {
				return null;
			}
		} else {
			q = decodeURIComponent(q.replace(/\+/g,'%20'));
		}
		q = q.replace(/\0/g,"");
		
		var ngstring = GetMetaData('amwlpo_ngwords');
		var arrayof_ngword = new Array();
		if (ngstring) {
			var words = ngstring.split(",");
			for (var i=0;i<words.length;i++) {
				arrayof_ngword[words[i]] = true;
			}
		}

		var token = new Array();
		if (q) {
			while(0<q.length) {
				var tok = q.match(/[^\s\-\+"][^\s]*?[^\s"]*|\s|\-|\+|"/);
				token.push(tok[0]);
				q = q.slice(tok[0].length);
			}
		}
		
		var state_ws  = false;
		var state_and = false;
		var state_not = false;
		var state_dq  = false;
		var buf_dq = "";
		var buf_q = "";
		
		for (var i=0;i<token.length;i++) {
			switch ( token[i] ) {
				case ' ':
					state_ws = true;
					break;
				case '+':
					state_and = true;
					break;
				case '-':
					state_not = true;
					break;
				case '"':
					if (state_dq) {
						state_dq = false;
						buf_q += '"' + buf_dq + '"';
						buf_dq = "";
					} else {
						state_dq = true;
						if (state_ws) {
							buf_q += ' ';
							state_ws = false;
						}
						if (state_and) {
							buf_q += '+';
							state_and = false;
						}
						if (state_not) {
							buf_q += '-';
							state_not = false;
						}
					}
					break;
				default:
					if ( arrayof_ngword[token[i]]) {
						state_ws = false;
						state_and = false;
						state_not = false;
						continue;
					}
					if (state_dq) {
						if (state_ws) {
							buf_dq += ' ';
							state_ws = false;
						}
						if (state_and) {
							buf_dq += '+';
							state_and = false;
						}
						if (state_not) {
							buf_dq += '-';
							state_not = false;
						}
						buf_dq += token[i];
					} else {
						if (state_ws) {
							buf_q += ' ';
							state_ws = false;
						}
						if (state_and) {
							buf_q += '+';
							state_and = false;
						}
						if (state_not) {
							buf_q += '-';
							state_not = false;
						}
						buf_q += token[i];
					}
					break;
			}
		}
		
		if (!buf_q) {
			return null;
		}
		return buf_q.replace(/^[\+\-]+/,"");
	}	

	var charset = '';
	if(document.all) {
		charset = document.charset;
	} else {
		charset = document.characterSet;
	}
	
	var qwds = GetQueryString();
	if (null == qwds) return;
	if (qwds.match(/^([\w]*\s)+[\w]*$/)) {
		qwds = '"' + qwds + '"';
	}
	qwds = encodeURIComponent(qwds);
	
	if (typeof amwlpo_params == 'undefined') return;
	var link = 'http://asciimw-apis.jp/lpo/articles.php?'+ amwlpo_params + '&charset=' + charset + '&callback=amwlpocb' +'&without=' + encodeURIComponent(location.href) + '&qwds=' + qwds  ;
	 
	var srcObj = document.createElement("script");
	srcObj.src = link;
	document.getElementsByTagName("head")[0].appendChild(srcObj);

}
)()
