function checkRequired(page_number) {
	var div_id = "page_id-"+page_number;
	var page_to_check = document.getElementById(div_id);
	var inputs = page_to_check.getElementsByTagName("input");
	var textareas = page_to_check.getElementsByTagName("textarea");
	var requirements_not_met = 0;
	var is_valid = 0;
	var checked_array = [];
	for (var i=0; i<inputs.length; i++) {
		is_valid = 0;
		if (inputs[i].className.indexOf("required_field") != "-1") {
			if ((inputs[i].type == "radio") || (inputs[i].type == "checkbox")){
				if (!in_array(checked_array, inputs[i].name)) {
					is_valid = validateRadioButton(inputs[i].name)
					checked_array.push(inputs[i].name);
					if (is_valid == 0) {
						requirements_not_met = 1;
					}
				}
			}

			if (inputs[i].type == "text") {
				if (inputs[i].value.replace(/\s*/g,"") == "") {
					requirements_not_met = 1;
				}
			}
		}
	}

	for (var j=0; j<textareas.length; j++) {
		if (textareas[j].className.indexOf("required_field") != "-1") {
			if (textareas[j].value.replace(/\s*/g,"") == "") {
				requirements_not_met = 1;
			}
		}
	}
	
	if (requirements_not_met == 1) {
		alert("Please answer required question(s)");
		return false;
	} else {
		return true;
	}
}

function validateRadioButton(element_name) {
	var radio_btn = document.getElementsByName(element_name);
	var is_checked = 0;
	for (var i=0; i<radio_btn.length; i++) {
		if (radio_btn[i].checked) {
			is_checked = 1;
		}
	}
	return is_checked;
}

function in_array(arr, val) {
	for (var i=0; i<arr.length; i++) {
		if (arr[i] == val) {
			return true;
		}
	}
	return false;
}

function nextPage(current_page) {
	var all_required_valid = checkRequired(current_page);

	if (all_required_valid == false) {
		return false;
	}
	
	var next_page_num = current_page + 1;
	var page_to_display = "page_id-"+next_page_num;
	var page_to_hide = "page_id-"+current_page;
	
	document.getElementById(page_to_hide).style.display = "none";
	document.getElementById(page_to_display).style.display = "block";	
}

function prevPage(current_page) {
	var prev_page_num = current_page - 1;
	var page_to_display = "page_id-"+prev_page_num;
	var page_to_hide = "page_id-"+current_page;
	
	document.getElementById(page_to_hide).style.display = "none";
	document.getElementById(page_to_display).style.display = "block";	
}

function submitSurvey(current_page, survey_id) {
	var all_required_valid = checkRequired(current_page);

	if (all_required_valid == false) {
		return false;
	} 
	saveSurvey(survey_id);
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}
	}
	return {left:curleft,top:curtop};
}

function findPosForSubtext(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		while (obj = obj.offsetParent) {
			if (obj.id == "survey_popup_container") {
				break;
			}
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}
	}
	return {left:curleft,top:curtop};
}

function showSubTextBox(subtext_info, question_number_id, element) {
	var survey_container = document.getElementById("survey_popup_container");
	var question_number_td = document.getElementById(question_number_id);
	var question_number_loc = findPosForSubtext(question_number_td);
	question_number_loc.top = question_number_loc.top + question_number_td.offsetHeight;
	//alert(question_number_loc.top);
	var subtext_box = document.createElement("span");
	subtext_box.id = "subtext_box_container";
	subtext_box.style.position = "absolute";
	subtext_box.style.zIndex = "100";
	subtext_box.style.left = question_number_loc.left + "px";
	subtext_box.style.top = question_number_loc.top + "px";
	subtext_box.style.border = "1px solid #333";
	subtext_box.style.padding = "10px";
	subtext_box.style.fontSize = "12px";
	subtext_box.style.backgroundColor = "#FFFFCC";
	subtext_box.style.maxWidth = "600px";
	subtext_box.innerHTML = subtext_info;

	element.onmouseout = function () {
		survey_container.removeChild(subtext_box);
	}
	
	survey_container.appendChild(subtext_box);
}

function showSurvey(survey_id) {
	var request = new Ajax.Request("/survey/buildSurvey", {
		asynchronous: false,
		method: "post",
		parameters: {survey_id: survey_id},
		onComplete: function (transport) {
			surveyPopup(transport.responseText);
		}
	});
}

function surveyPopup(survey_info) {
	var bod = document.getElementsByTagName("body")[0];

	if (document.getElementById("survey_popup_container")) {
		bod.removeChild(document.getElementById("survey_popup_container"));
	}
	
	var survey_popup_container = document.createElement("div");
	survey_popup_container.id = "survey_popup_container";
	survey_popup_container.style.position = "absolute";
	survey_popup_container.style.zIndex = "1000";
	survey_popup_container.style.width = "652px";
	survey_popup_container.style.top = "50px";
	survey_popup_container.style.left = "50px";
	survey_popup_container.style.backgroundColor = "#ffffff";
	survey_popup_container.style.border = "2px solid #333";
	
	var survey_close = document.createElement("img");
	survey_close.src = "/application/views/sm/skins/default/images/account/cancel.png"; 
	survey_close.style.position = "absolute";
	survey_close.style.right = "10px";
	survey_close.style.top = "10px";
	survey_close.style.cursor = "pointer";
	survey_close.onclick = function () {
		bod.removeChild(survey_popup_container);
	}

	var survey_body = document.createElement("div");
	survey_body.innerHTML = survey_info;

	survey_popup_container.appendChild(survey_close);
	survey_popup_container.appendChild(survey_body);
	bod.appendChild(survey_popup_container);
}

function removeSurveyPopup() {
	var bod = document.getElementsByTagName("body")[0];

	if (document.getElementById("survey_popup_container")) {
		bod.removeChild(document.getElementById("survey_popup_container"));
	}
}

function saveSurvey(survey_id) {
	var survey_parameters = $("survey_form").serialize(true);
	var request = new Ajax.Request("/survey/saveSurvey/"+survey_id, {
		asynchronous: false,
		method: "post",
		parameters: survey_parameters,
		onComplete: function(transport) {
			surveyPopup(transport.responseText);
			//setTimeout(function () {removeSurveyPopup();}, 5000);
//			if (order_id != "no_order_id") {
//				addGiftCardToOrder(survey_order_id);
//			}
		}
	});
}

function addGiftCardToOrder(survey_order_id) {
	var request = new Ajax.Request("/survey/addGiftCardToOrder", {
		asynchronous: false,
		method: "post",
		parameters: {survey_order_id: survey_order_id}
	});
}

var dragOffsetX=0;
var dragOffsetY=0;
function moveSurvey(e) {
	var e = e || window.event;
	var left_pos = (e.clientX - dragOffsetX) + "px";
	var top_pos = (e.clientY - dragOffsetY) + "px";
	var survey_container = document.getElementById("survey_popup_container");
	
	survey_container.style.left = left_pos; 
	survey_container.style.top = top_pos; 
}

function dragSurvey(e) {
	var e = e || window.event;
	var survey_container = document.getElementById("survey_popup_container");
	var dragOffsets = findPos(survey_container);
	dragOffsetX = e.clientX - dragOffsets.left;
	dragOffsetY = e.clientY - dragOffsets.top;
	document.onmousemove = moveSurvey;
	document.onselectstart = function () {return false;}
	survey_container.ondragstart = function () {return false;}
	return false;
}

function dropSurvey() {
	var survey_container = document.getElementById("survey_popup_container");
	document.onmousemove = null;
	document.onselectstart = null;
	survey_container.ondragstart = null;
}
