var posted = false;
var enq_url = "/enquete/";
var data_type;
if ($.browser["msie"]) {
	data_type = "xml";
} else {
	data_type = "text";
}
// ----- Check SaneID -----
var SaneID = getCookie("SaneID");
if (SaneID != "") {
	// ----- Get enquete_id -----
	var scripts = $("script").get();
	var self = "enquete/blog_parts.js?";
	var self_idx = 0;
	loop:
	for (var i = 0; i < scripts.length; i++) {
		self_idx = scripts[i].src.lastIndexOf(self);
		if (self_idx != -1) {
			var param = scripts[i].src.substring(self_idx + self.length, 999);
			var params = param.split("&");
			var params2;
			for (var index in params) {
				params2 = params[index].split("=");
				eval('var ' + params2[0] + ' = "' + params2[1] + '";'); 
			}
			$(scripts[i]).after("<div id='questionnaire'></div>\n");
			break loop;
		}
	}

	// ----- Get enquete -----
	var cookie = getCookie("mcd_enq_result_" + enquete_id);
	if (eval('cookie.match(/^{ "enquete_id": "' + enquete_id + '"/)')) {
		eval("var json_result = " + cookie);
		window.json_result=json_result;

		$.ajax({
			url: enq_url + 'xml/enquete_' + enquete_id + '.xml',
			dataType: data_type,
			success: function(xml) {
				write_result(window.json_result,xml);
			}
		});
		//write_result(json_result);
	} else {
		cookie = getCookie("mcd_enquete_" + enquete_id);
		if (cookie == "") {
			$.ajax({
				url: enq_url + 'xml/enquete_' + enquete_id + '.xml',
				dataType: data_type,
				success: function(xml) {
					var now = new Date().getTime();
					var from_str=$(xml).find("mcd-enq\\:from").eq(0).text();
					from_str=from_str.replace(/-/g,"/");
					var from = Date.parse( from_str);
					
					var to2_str = $(xml).find("mcd-enq\\:to2").eq(0).text();
					to2_str=to2_str.replace(/-/g,"/");
					var to2 = Date.parse(to2_str);	
					
					var to_str = $(xml).find("mcd-enq\\:to").eq(0).text();
					to_str=to_str.replace(/-/g,"/");
					var to = Date.parse(to_str);
					
					window.xml=xml;
					if ( from <= now && to2 >= now) {
						write_enquete(xml);
					} else if (to2 <= now && to >= now) {
						$.getJSON(enq_url + "get_result_json.php", {"enquete_id": enquete_id}, function(json_result) {
							write_result(json_result,window.xml);
						});
					} else {
						$("#questionnaire").replaceWith("");
					}
				},
				error: function() {
					$("#questionnaire").replaceWith("");
				}
			});
		} else {
			$.ajax({
				url:enq_url + "get_result_json.php",
				type: "GET",
				dataType: "json",
				data: {"enquete_id": enquete_id},
				success: function(json_result) {
					//write_result(json_result,xml);
					window.json_result=json_result;
					$.ajax({
						url: enq_url + 'xml/enquete_' + enquete_id + '.xml',
						dataType: data_type,
						success: function(xml) {
							write_result(window.json_result,xml);
						}
					});
				},
				error: function() {
					$("#questionnaire").replaceWith("");
				}
			});

			//$.getJSON(enq_url + "get_result_json.php", {"enquete_id": enquete_id}, function(json_result) {
			//	write_result(json_result);
			//});
		}
	}
}

// ----- Write Enquete -----
function write_enquete(xml) {

	var ans_count = 0;
	var answer_id = 0;

	var linkurl="";
	var linktext="";
	var linktarget="";

	if( $(xml).find("mcd-enq\\:link").length>0 ){
		linkurl=escapeHTML(   $(xml).find("mcd-enq\\:linkurl").eq(0).text() );
		linktext=escapeHTML(  $(xml).find("mcd-enq\\:linktext").eq(0).text() );
		linktarget=escapeHTML($(xml).find("mcd-enq\\:linktarget").eq(0).text() );
		if(linkurl.lastIndexOf("?")>0 ){
			linkurl += "&" + "enquete_id=" + enquete_id;
		}else{
			linkurl += "?" + "enquete_id=" + enquete_id;
		}
	}

		
	var enq_html = '<div id="questionnaire">\n';
	enq_html += '<dl>\n';
	enq_html += '	<dt><img src="/shared/graphic/questionnaire/text_01.gif" alt="マックアンケート" width="137" height="38"></dt>\n';
	enq_html += '	<dd>\n';
	enq_html += '		<p>' + escapeHTML($(xml).find("mcd-enq\\:statement").eq(0).text()) + '</p>\n';
	enq_html += '		<div class="body question">\n';
	enq_html += '			<ul>\n';
	for (var index=0; index < $(xml).find("mcd-enq\\:answer").length; index++) {
		answer_id = parseInt(index)+1;
		enq_html += '					<li><input type="radio" id="questionnaire-radio-' + answer_id + '" name="questionnaire-radio" value="' + answer_id + '"><label for="questionnaire-radio-' + answer_id + '">' + escapeHTML($(xml).find("mcd-enq\\:answer").eq(index).text()) + '</label></li>\n';
	}
	enq_html += '				<li class="btn">\n';
	enq_html += '					<input class="hover" height="22" width="66" type="image" alt="投票！" value="投票！" src="/shared/graphic/questionnaire/button_01.gif" onClick="post_enquete(' + enquete_id + ')">\n';
	enq_html += '				</li>\n';
	enq_html += '			</ul>\n';
	enq_html += '		</div>\n';

	if(! linkurl || ! linktext){
		enq_html += '';
	}else{
		enq_html += '		<div class="check">\n';
		enq_html += '			<dl>\n';
		enq_html += '				<dt><img src="/shared/graphic/questionnaire/text_03.gif" alt="Check !!" width="137" height="49">\n';
		enq_html += '				<span class="pen"><img src="/shared/graphic/questionnaire/image_pen_01.gif" alt=""></span></dt>\n';
		enq_html += '				<dd>\n';
		enq_html += '					<ul class="link"><li><a class="jump" href="' + linkurl + '" ' + linktarget + '>' + linktext + '</a></li></ul>\n';
		enq_html += '				</dd>\n';
		enq_html += '			</dl>\n';
		enq_html += '		</div>\n';
	}

	enq_html += '	</dd>\n';
	enq_html += '</dl>\n';
	enq_html += '</div>\n';


	$("#questionnaire").replaceWith(enq_html);

	// ----- Rollover -----
	$ ("div#questionnaire ul.link > li:has(> a[target])").addClass ("external");
	$ ("div#questionnaire ul.link > li > a").hover (function () {
		$ (this).parent ().addClass ($ (this).parent ().hasClass ("external") ? "external-hover" : "hover");
	}, function () {
		$ (this).parent ().removeClass ($ (this).parent ().hasClass ("external") ? "external-hover" : "hover");
	});
	$ ("div#questionnaire ul.link li a").hover (function () {
		$ (this).parent ().addClass ("hover");
	}, function () {
		$ (this).parent ().removeClass ("hover");
	});
	$ (function () {
		$ ("div#questionnaire input.hover").each (function () {
			$ ("<img>").attr ("src", this.src.replace (/\.([^.]+)$/, "_hover." + "$1")).appendTo ("body").hide ();
			$ (this).hover (function () {
				this.src = this.src.replace (/\.([^.]+)$/, "_hover." + "$1");
			}, function () {
				this.src = this.src.replace (/_hover\.([^.]+)$/, "." + "$1");
			});
		});
	});
}


// ----- Write Result -----
function write_result(json_result,xml) {
	if (json_result.empty == "true") {
		$("#questionnaire").replaceWith("");
		return;
	}
	var sum_count = 0;
	var percent;
	for (var i = 0; i < json_result.answers.length; i ++) {
		sum_count = sum_count + parseInt(json_result.answers[i].count);
	}
	var linkurl="";
	var linktext="";
	var linktarget="";

	if( xml && $(xml).find("mcd-enq\\:link").length>0 ){
		linkurl=escapeHTML(   $(xml).find("mcd-enq\\:linkurl").eq(0).text() );
		linktext=escapeHTML(  $(xml).find("mcd-enq\\:linktext").eq(0).text() );
		linktarget=escapeHTML($(xml).find("mcd-enq\\:linktarget").eq(0).text() );
		if(linkurl.lastIndexOf("?")>0 ){
			linkurl += "&" + "enquete_id=" + enquete_id;
		}else{
			linkurl += "?" + "enquete_id=" + enquete_id;
		}
	}
	
	$answer_html = '<div id="questionnaire">\n';
	$answer_html += '<dl>\n';
	$answer_html += '	<form>\n';
	$answer_html += '	<dt><img src="/shared/graphic/questionnaire/text_01.gif" alt="マックアンケート" width="137" height="38"></dt>\n';
	$answer_html += '	<dd class="question">\n';
	$answer_html += '		<p>' + json_result.statement + '</p>\n';
	$answer_html += '		<div class="body answer">\n';
	$answer_html += '			<dl>\n';
	for (i = 0; i < json_result.answers.length; i ++) {
		$answer_html += '				<dt>' + json_result.answers[i].answer + '</dt>\n';
		if (json_result.answers[i].count == "0") {
			$answer_html += '				<dd class="percent-0">0%</dd>\n';
		} else {
			percent = Math.round(json_result.answers[i].count/sum_count*100);
			$answer_html += '				<dd class="percent-' + (Math.round(percent/5)*5) + '">' + percent + '%</dd>\n';
		}
	}
	$answer_html += '			</dl>\n';
	$answer_html += '		</div>\n';

	if(linkurl || linktext){
		$answer_html += '		<div class="check">\n';
		$answer_html += '			<dl>\n';
		$answer_html += '				<dt><img src="/shared/graphic/questionnaire/text_03.gif" alt="Check !!" width="137" height="49">\n';
		$answer_html += '				<span class="pen"><img src="/shared/graphic/questionnaire/image_pen_01.gif" alt=""></span></dt>\n';
		$answer_html += '				<dd>\n';
		$answer_html += '					<ul class="link"><li><a class="jump" href="' + linkurl + '" ' + linktarget + '>' + linktext + '</a></li></ul>\n';
		$answer_html += '				</dd>\n';
		$answer_html += '			</dl>\n';
		$answer_html += '		</div>\n';
	}else{
		$answer_html += '';
	}

	$answer_html += '	</dd>\n';
	$answer_html += '	</form>\n';
	$answer_html += '</dl>\n';
	$answer_html += '</div>\n';

	$("#questionnaire").replaceWith($answer_html);

	// ----- Rollover -----
	$ ("div#questionnaire ul.link > li:has(> a[target])").addClass ("external");
	$ ("div#questionnaire ul.link > li > a").hover (function () {
		$ (this).parent ().addClass ($ (this).parent ().hasClass ("external") ? "external-hover" : "hover");
	}, function () {
		$ (this).parent ().removeClass ($ (this).parent ().hasClass ("external") ? "external-hover" : "hover");
	});
	$ ("div#questionnaire ul.link li a").hover (function () {
		$ (this).parent ().addClass ("hover");
	}, function () {
		$ (this).parent ().removeClass ("hover");
	});
	$ (function () {
		$ ("div#questionnaire input.hover").each (function () {
			$ ("<img>").attr ("src", this.src.replace (/\.([^.]+)$/, "_hover." + "$1")).appendTo ("body").hide ();
			$ (this).hover (function () {
				this.src = this.src.replace (/\.([^.]+)$/, "_hover." + "$1");
			}, function () {
				this.src = this.src.replace (/_hover\.([^.]+)$/, "." + "$1");
			});
		});
	});
}


// ----- Post Enquete -----
function post_enquete(enquete_id) {
	if (!navigator.cookieEnabled) {
		$("#questionnaire").replaceWith("<div id='questionnaire'>クッキーを有効にしてください<br><br></div>");
		
		return;
	}
	if (posted) {
		return;
	}
	
	var input = $("input").get();
	loop:
	for (index in input) {
		if (input[index].type=="radio" && input[index].name=="questionnaire-radio" && input[index].checked) {
			posted = true;
			var random = Math.random()
			var answer_id = input[index].value;
			$.ajax({
				type: "POST",
				url:enq_url + "enq.php",
				data: {"random": random, "enquete_id": enquete_id},
				success: function(data) {
					post_enquete2(enquete_id, answer_id, random, data);
				},
				error: function() {
					$("#questionnaire").replaceWith("<div id='questionnaire'>エラーが発生しました<br><br></div>");
				}
			});
			break loop;
		}
	}
}

function post_enquete2(enquete_id, answer_id, random, sid) {
	var referer=document.URL;
	var ref_type=typeof referrer_url;
	ref_type=ref_type.toLowerCase();
	var referrer_url2 = window["referrer_url"];
	if ( (ref_type=="string" || ( referrer_url2 &&  referrer_url2 != "undefined") ) && referrer_url2.length > 9 ){
		referer = unescape(referrer_url2);
	}
	if( enquete_id && (random || random==0) && sid && referer ){
		$.ajax({
			type: "POST",
			url:enq_url + "enq.php",
			data: { "p": "seed", "enquete_id": enquete_id, "random": random, "seed_sid": sid, "referer":referer },
			success: function(data) {
				post_enquete3(enquete_id, answer_id, data);
			},
			error: function() {
				$("#questionnaire").replaceWith("<div id='questionnaire'>エラーが発生しました<br><br></div>");
			}
		});
	}else{
		$("#questionnaire").replaceWith("<div id='questionnaire'>ブラウザが対応していません<br><br></div>");
	}
}

function post_enquete3(enquete_id, answer_id, sid) {
	var referer=document.URL;
	var ref_type=typeof referrer_url;
	ref_type=ref_type.toLowerCase();
	var referrer_url2 = window["referrer_url"];
	if ( (ref_type=="string" || ( referrer_url2 &&  referrer_url2 != "undefined") ) && referrer_url2.length > 9 ){
		referer = unescape(referrer_url2);
	}
	if( enquete_id && answer_id && sid && referer ){
		$.ajax({
			type: "POST",
			url:enq_url + "enq.php",
			data: { "p": "post", "enquete_id": enquete_id, "answer_id": answer_id, "session_id": sid, "referer":referer },
			success: function(data) {
				if (data == false) {
					$("#questionnaire").replaceWith("<div id='questionnaire'>エラーが発生しました<br><br></div>");
				} else {
					$.ajax({
						type: "GET",
						url:enq_url + "get_result_json.php",
						dataType: "json",
						data: {"enquete_id": enquete_id},
						success: function(json_result) {
							write_result(json_result,window.xml);
						},
						error: function() {
							$("#questionnaire").replaceWith("<div id='questionnaire'>エラーが発生しました<br><br></div>");
						}
					});
				}
			},
			error: function() {
				$("#questionnaire").replaceWith("<div id='questionnaire'>エラーが発生しました<br><br></div>");
			}
		});
	}else{
		$("#questionnaire").replaceWith("<div id='questionnaire'>ブラウザが対応していません<br><br></div>");
	}
}

// ----- function -----
function getCookie(key,  tmp1, tmp2, xx1, xx2, xx3) {
	tmp1 = " " + document.cookie + ";";
	xx1 = xx2 = 0;
	len = tmp1.length;
	while (xx1 < len) {
		xx2 = tmp1.indexOf(";", xx1);
		tmp2 = tmp1.substring(xx1 + 1, xx2);
		xx3 = tmp2.indexOf("=");
		if (tmp2.substring(0, xx3) == key) {
			var tmp, s = "", str = tmp2.substring(xx3 + 1, xx2 - xx1 - 1);
			for (var i = 0; i < str.length; i++){
				tmp = str.charAt(i);
				if (tmp == "+") {
					s += " ";
				} else {
					s += tmp;
				} 
			}	
			return(decodeURIComponent(s));
		}
		xx1 = xx2 + 1;
	}
	return("");
}

function escapeHTML(str) {
	return str.replace(/[&"<>]/g, function(c) {
	return {
		"&": "&amp;",
		'"': "&quot;",
		"<": "&lt;",
		">": "&gt;"
		}[c];
	});
}


