//Override Defaults
$(document).bind("mobileinit", function() {
    $.mobile.loadingMessage = "Please wait...";
    $.mobile.touchOverflowEnabled = true;
});

var testid;

//Global Page Init
$('div:jqmData(role="page")').live('pageinit',function(){
	testid = localStorage.getItem("testid");
	page_id = $(this).attr('id');
	securityCheck(page_id);
	
});

//Login Page Init
$('#login_page').live('pageinit',function() {
	localStorage.clear();
	
	$('#login_button').click(function() {
		var formData = $('#login_form').serialize();
        userLogin(formData);
        return false;
	});
});

//Security Check
function securityCheck(page_id) 
{
	if(page_id == 'login_page')
		localStorage.clear();
	else
		if(localStorage.getItem("mobile_access") != 1)
			window.location = '/mobile/';
}

//User Lgoin
function userLogin(loginData)
{
	$.ajax({
        type: "POST",
        url: "/mobile/include/ajax/login_check.php",
        cache: false,
        data: loginData,
        success: function(data) {
            if(data != "false") {
            	localStorage.setItem("mobile_access","1");
				localStorage.setItem("user_id",data);
            	$.mobile.changePage("/mobile/modules/product/product.php");
            }
			else if(data == "false") {
                alert('Your login is incorrect. Please try again');
            }
        },
        error: function() {
            alert('error');
        }
    });
}

//School ID Check
function checkSchoolID(schoolid)
{
	$("#schoolid").attr('disabled',true);
		
    $.get("/mobile/modules/account/check_data.php?field=schoolid&schoolid="+schoolid, function (r) {
        $("#schoolid").attr('disabled',false);
        if(r != '1')
            alert('School Not Found');
    });
}

//Product Page Init
$('#product_page').live('pageinit',function() {
	localStorage.removeItem("current_page");
	localStorage.removeItem("testid");
	
	//Class Party
	$("#class_party_link").click(function() {
		localStorage.setItem("current_page","party");
		$.mobile.changePage('/mobile/modules/party/party.php');
	});
	
	//Test Selection
	$('#test_select a').click(function() {
		testid = $(this).attr('id');
		$.ajax({
        type: "POST",
        url: "/mobile/include/ajax/product_check.php",
        cache: false,
        data: {testid:testid},
        success: function(data) {
        	console.log(data);
            if(data != "1") {
            	alert(data);
            	return false;
            }
			else {
            	localStorage.setItem("testid",testid);
				$.mobile.changePage("/mobile/front.php",{type:"post",data:{testid:testid}});
				localStorage.setItem("current_page","otd");
            }
        },
        error: function() {
            alert('error');
        }
   	 	});
	});
});

//Front Page Init
$("#front_page").live('pageinit',function() {
	var testid = localStorage.getItem("testid");
	var page = localStorage.getItem("current_page");
	if(page)
	{
		loadContent(page);
	}
	
	$("#nav_tabs a").click(function() {
		localStorage.setItem("current_page",$(this).attr('id'));
		loadContent($(this).attr('id'));
	});
	
	console.log('pageinit');
	
});

//Content Load
function loadContent(page)
{
	$("#front_content").load('/mobile/include/ajax/content.php',{page:page}, function() { 
		$("#front_content").trigger('create');
		$('#nav_tabs a[id="'+page+'"]').addClass('ui-btn-active');
	});
}

$("#front_content").live('create',function() {
	var page = localStorage.getItem("current_page");
	
	//OTD Page
	if(page == "otd")
	{
		//OTD Type Selection
		$('#otd_type a').click(function() {
			otd_type = $(this).attr('id');	
			localStorage.setItem("question_type",otd_type);
			
			$.mobile.changePage("/mobile/modules/question/question.php",{transition:"slideup",type:"post",data:{page:"otd",type:otd_type,testid:testid}});
		});
	}
	//Practice Create Page
	else if(page == "practice")
	{
		var practice_type = 'question';
		var question_count = 5;
		var domainID = localStorage.getItem("domain");
		var elementID = localStorage.getItem("element");
		
		$('#element_div').hide();
		$('#create_div').hide();
		
		//Domain Select
		$('#select_domain').change(function() {
			domainID = $(this).val();
			console.log(domainID);
			$.ajax({
			type: "POST",
			url: "/mobile/include/ajax/element_list.php",
			cache: false,
			data: {domain:domainID},
			success: function(data) {
				$('#element_div').show();
				$('#select_element').empty();
				$('#select_element').append(data).selectmenu("refresh");
			}
			});
		});
	
		//Element Select
		$('#select_element').change(function() {
			elementID = $(this).val();
			$('#create_div').show();
		});
		
		//Practice Create Submit
		$('#practice_create').click(function() {    	
			//Set Local Storage
			localStorage.setItem("question_type",practice_type);
			localStorage.setItem("question_page","question");
			localStorage.setItem("domain",domainID);
			localStorage.setItem("element",elementID);
			localStorage.setItem("question_count",question_count);
			localStorage.setItem("question_number","1");
			localStorage.setItem("number_correct","0");
			
			$.mobile.changePage('/mobile/modules/question/question.php',{
				transition: "slideup",
				type: 'post',
				data:{page:"practice",type:practice_type,testid:testid,domain:domainID,element:elementID,question_number:"1",question_count:question_count}
				}
			);
		});
	}
});

// Party Page
$("#party_page").live('pageinit',function() {
	//Party Login
	$('#party_login').click(function() {
		var party_code = $('#party_code').val();
		var user_id = localStorage.getItem("user_id");

		$.ajax({
			url: '/mobile/modules/party/party_functions.php',
			type: 'post',
			data: {type:"party_login",party_code:party_code,user_id:user_id},
			success: function(results) {
				if(results == 0)
				{
					alert('Incorrect Party Code');
					return false;
				}
				else if(results == "inactive") {
					alert('The party has already started and you cannot join :(');
					return false;
				}
				else
				{
					clicker_data = $.parseJSON(results);
					question_count = clicker_data.question_count;
					party_id = clicker_data.party_id;
					row_id = clicker_data.row_id;
					localStorage.setItem("party_id",party_id);
					localStorage.setItem("user_row_id",row_id);
					localStorage.setItem("party_code",party_code);
					localStorage.setItem("question_type","question");
					localStorage.setItem("question_count",question_count);
					localStorage.setItem("question_page","question");
					localStorage.setItem("question_number","1");
					localStorage.setItem("number_correct","0");
					$.mobile.changePage('/mobile/modules/question/question.php', {type:"post",data:{page:"party",type:"question",party_code:party_code,question_count:question_count,question_number:"1"}});
				}
			}
		});
	});
});

//Question Page
$("#question_page").live('pageinit',function() {
	var party_id = localStorage.getItem("party_id");
	var question_type = localStorage.getItem("question_type");
	var question_count = localStorage.getItem("question_count");
	var question_number = localStorage.getItem("question_number");
	var number_correct = localStorage.getItem("number_correct");
	var page = localStorage.getItem("current_page");
	if(page == "party")
		$('a[title="Close"]').attr('href','/mobile/modules/product/product.php');
	//Close Button
	$('a[title="Close"]').click(function() {
		if(page != "party")
			$.mobile.changePage("/mobile/front.php", {transition: "slidedown"});
	});
	
	switch(question_type)
	{
		case "question":
			$('[type="radio"]').click(function() {
				var user_answer = $(this).val();
				var question_answer = $('#question_answer').val();
				var question_explanation = $('#question_explanation').val();
				localStorage.setItem("question_type","answer");
				
				if(page == "party")
				{
					var user_row_id = localStorage.getItem("user_row_id");
					if(question_number == 1)
						var answers_array = new Array();
					else
						var answers_array = JSON.parse(localStorage.getItem("answers_string"));
						
					answerJSON = {};
					answerJSON[question_number] = user_answer;
					answers_array.push(answerJSON);
					var answers_string = JSON.stringify(answers_array);
					localStorage.setItem("answers_string",answers_string);
	
					$.ajax({
						url: '/mobile/modules/party/party_functions.php',
						type: 'post',
						data: {type:"submitAnswer",user_row:user_row_id,user_answers:answers_string},
					});
				}

				$.mobile.changePage("/mobile/modules/question/question.php", {transition:"slide",type:"post",data:{page:page,type:"answer",user_answer:user_answer,question_answer:question_answer,question_explanation:question_explanation} });
			});
		break;
	
		case "vocab":
			$('#submit').click(function() {
				var user_answer = $('#user_answer').val();
				var question_id = $('#question_id').val();
				var question_answer = $('#question_answer').val();
				var question_explanation = $('#question_explanaation').val();
				localStorage.setItem("question_type","answer");

				$.mobile.changePage("/mobile/modules/question/question.php", {transition:"slide",type:"post", data: {page:page,type:"answer",user_answer:user_answer,question_id:question_id,question_answer:question_answer,question_explanation:question_explanation} });
			});
		break;
		
		case "answer":
		//Show Results Button
		if(question_number == question_count)
		{
			$('#next_question').prev('.ui-btn-inner').children('.ui-btn-text').html('View Results');
			$('#next_question').click(function() {
				$.mobile.changePage('/mobile/modules/question/question_results.php',
				{
					transition:'pop', 
					role: 'dialog',
					type:'post', 
					data: {page:page,question_count:question_count,number_correct:number_correct}
				});
			});
		}	
		//Show Next Question Button
		else 
		{
			localStorage.setItem("question_page","question");
			question_number++;
			localStorage.setItem("question_number",question_number);
				
			$('#next_question').click(function() {
				localStorage.setItem("question_type","question");
				if(page == "party")
				{
					$.ajax({
						url: '/mobile/modules/party/party_functions.php',
						type: 'post',
						data: {type:"questionStatus",party_id:party_id,current_question:question_number-1},
						success: function(result) {
							if(result == 0)
							{
								alert("Your teacher has not moved on to the next question. Please wait...");
								return false;
							}
							else
							{
								$.mobile.changePage('/mobile/modules/question/question.php',
								{
									transition: "slidedown",
									type: 'post',
									data:{page:page,type:"question",question_count:question_count,question_number:question_number}
								});	
							}
						}
					});	
				}
				else
				{
					$.mobile.changePage('/mobile/modules/question/question.php',
					{
						transition: "slidedown",
						type: 'post',
						data:{page:page,type:"question",question_count:question_count,question_number:question_number}
					});
				}
			});
		}
	}
		
	$('#close_dialog').click(function() {
		testid = localStorage.getItem("testid");
		$.mobile.changePage('/mobile/front.php',{transition:"slidedown"});
	});
});

//Question Results Page Init
$('#question_results_page').live('pageinit',function() {
	page = localStorage.getItem("current_page");
	
	//Hide Close X
	$('a[title="Close"]').hide();
	
	$('#close_dialog').click(function() {
		if(page == 'party')
			$.mobile.changePage('/mobile/modules/product/product.php',{transition: "slidedown"});
		else
			$.mobile.changePage('/mobile/front.php',{transition: "slidedown"});
		
	});
});


//Feedback Page Init
$('#feedback_page').live('pageinit',function() {
 	//Hide Close X
	$('a[title="Close"]').hide();
	$('#success_div').hide();
	
	$('#submit').click(function() {
		$.ajax({
        type: "POST",
        url: "/mobile/modules/feedback/feedback_submit.php",
        cache: false,
        data: $('#feedback_form').serialize(),
        success: function(data) {
        	alert('Your feedback was successfully sent. Thank You.');
			$.mobile.changePage('/mobile/front.php',{transition: "slidedown"});
        },
        error: function() {
            alert('There was an error submitting your feedback. Please try again later.');
        }
    });
	})
});


