var menuid = '';
var view_programmelist = 0;
var view_myalertlist = 0;
var view_episodelist = 0;
// 0=thumbnail , 1=textview
function swapMenu(id,noclose) {
	if(!id || !$('#'+id)) {
		return;
	}
	if(menuid == id ) {
		if(!noclose) {
			closeMenu();
		}
	} else {
		$('li.jsmenu').removeClass('on');
		$('li.js'+id).addClass('on');
		$('#controlpanel div.section').addClass('hide');
		$('#'+id).removeClass('hide');
		$('#controlpanel').slideDown('normal');
		menuid = id;
	}
	//$(this).blur();
}
function trim(s) {
    var l=0; var r=s.length -1;
    while(l < s.length && s[l] == ' ') {
			l++;
		}
    while(r > l && s[r] == ' ') {
			r-=1;
		}
    return s.substring(l, r+1);
} 
function closeMenu() {
	$('li.jsmenu').removeClass('on');
	$('#controlpanel').slideUp('normal');
	menuid = '';
}
function formlogin() {
	var f = document.myloginform;
	var elm;
	var msg;
	var msgboard = $('#login div.errormsg');

	elm = f.email;
	msg = "Email invalid.";
	if(!elm.value || !isEmail(elm.value)) {
		msgboard.html(msg);
		elm.focus();
		return false;
	}
	elm = f.password;
	msg = "Password is required.";
	if(!elm.value) {
		msgboard.html(msg);
		elm.focus();
		return false;
	}
	// do ajax login
	$('#myloginformloading').removeClass("hide");
	$('#myloginform').addClass("hide");
	$.ajax({
		type: "POST",
		url: "index.php?mod=ajax&sec=login",
		data: "email="+f.email.value+"&password="+f.password.value,
		success: function(msg) {
			if(msg=='failed') {
				$('#myloginformloading').addClass("hide");
				$('#myloginform').removeClass("hide");
				$('#myloginformfailed').removeClass("hide");
			} else {
				refresh_window();
			}
		}
	});
	return false;
}
function formresetpass() {
	var f = document.resetpassform;
	var elm;
	var msg;
	var msgboard = $('#resetpass div.errormsg');

	elm = f.email;
	msg = "Email invalid.";
	if(!elm.value || !isEmail(elm.value)) {
		msgboard.html(msg);
		elm.focus();
		return false;
	}
	// do ajax reset pass
	$('#resetpassformloading').removeClass("hide");
	$('#resetpassform').addClass("hide");
	$.ajax({
		type: "POST",
		url: "index.php?mod=ajax&sec=resetpass",
		data: "email="+f.email.value,
		success: function(msg) {
			if(msg=='failed') {
				$('#resetpassformloading').addClass("hide");
				$('#resetpassform').removeClass("hide");
				$('#resetpassformfailed').removeClass("hide");
			} else {
				$('#resetpassformloading').addClass("hide");
				$('#resetpassform2').removeClass('hide');
			}
		}
	});
	return false;
}
function resetPasswordStep2() {
	if(!token) {
		return;
	}
	swapMenu('resetpass');
	$('#resetpassform').addClass("hide");
	$('#resetpassform2').removeClass('hide');
	document.resetpassform2.token.value=token;
}
function formresetpass2() {
	var f = document.resetpassform2;
	var elm;
	var msg;
	var msgboard = $('#resetpass div.errormsg');

	elm = f.password;
	msg = "Password invalid.";
	if(!elm.value) {
		msgboard.html(msg);
		elm.focus();
		return false;
	}
	elm = f.password;
	msg = "Password must be between 7 and 50 characters long.";
	if(elm.value.length<7 || elm.value.length>50) {
		msgboard.html(msg);
		elm.focus();
		return false;
	}
	elm = f.token;
	msg = "Security Token required.";
	if(!elm.value) {
		msgboard.html(msg);
		elm.focus();
		return false;
	}
	msgboard.html("");
	// do ajax reset pass
	$('#resetpassform2').addClass("hide");
	$('#resetpassformloading').removeClass("hide");
	$.ajax({
		type: "POST",
		url: "index.php?mod=ajax&sec=resetpass2",
		data: "password="+f.password.value+"&token="+f.token.value,
		success: function(msg) {
			if(msg=='failed') {
				$('#resetpassformloading').addClass("hide");
				$('#resetpassform2').removeClass("hide");
				msgboard.html("Sorry, your token was invalid.");
			} else {
				$('#resetpassformloading').addClass("hide");
				msgboard.html("Your password has been reset.");
			}
		}
	});
	return false;
}
function interestform() {
	var msgboard = $('#interests div.errormsg');
	var lth = $('#myinterestform input:checked').length
	if(lth<1) {
		msgboard.html('At least one genre is required.');
		return false;
	}
	msgboard.html("");
	// do ajax login
	$("#myinterestformloading").removeClass("hide");
	$.ajax({
		type: "POST",
		url: "index.php?mod=ajax&sec=interest",
		data: $('#myinterestform').serialize(), 
		success: function(msg) {
			$('#myinterestformloading').addClass("hide");
			msgboard.html("Update successfully.");
		}
	});
	return false;
}
function updateSubscriptions() {
	var f = document.subscriptionsForm;
	var elm;
	var msg;
	var msgboard = $('#subscriptions div.errormsg');

	msg = "Mobile number is required.";
	if(f.sms_alert[0].checked && !f.contact.value) {
		msgboard.html(msg);
		f.contact.focus();
		return false;
	}
	msgboard.html("Updating ...");
	// do ajax login
	$.ajax({
		type: "POST",
		url: "index.php?mod=ajax&sec=subscriptions",
		data: $('#subscriptionsForm').serialize(), 
		success: function(msg) {
			msgboard.html("Updated successfully.");
		}
	});
	return false;
}
function updateDetails() {
	var f = document.detailsForm;
	var elm;
	var msg;
	var msgboard = $('#details div.errormsg');
	
	msg = "Gender is required.";
	if(!f.gender[0].checked && !f.gender[1].checked) {
		msgboard.html(msg);
		f.gender[0].focus();
		return false;
	}
	elm = f.address;
	msg = "Address is required.";
	if(!elm.value) {
		msgboard.html(msg);
		elm.focus();
		return false;
	}
	elm = f.country;
	msg = "Select a Country.";
	if(elm.selectedIndex<1) {
		msgboard.html(msg);
		elm.focus();
		return false;
	}

	msgboard.html("Updating ...");
	// do ajax login
	$.ajax({
		type: "POST",
		url: "index.php?mod=ajax&sec=details",
		data: $('#detailsForm').serialize(), 
		success: function(msg) {
			msgboard.html("Updated successfully.");
		}
	});
	return false;
}
function refresh_window() {
	//document.location='./';
	document.location='index.php';
}
function isEmail(email) {
  if(!email)
    return false;
  var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  return filter.test(email);
}

function validateEmail() {
  var eml = document.regform.email.value;
  if(isEmail(eml)) {
		$.ajax({
			type: "POST",
			url: "index.php?mod=ajax&sec=checkemail",
			data: "email="+eml,
			success: function(msg) {
				if(msg) {
					$('#reg1form_cross').removeClass('hide');
					$('#reg1form_tick').addClass('hide');
				} else {
					$('#reg1form_tick').removeClass('hide');
					$('#reg1form_cross').addClass('hide');
				}
			}
		});
  }
}

function regStep1() {
	var f = document.regform;
	var elm;
	var msg;
	var msgboard = $('#reg1 div.errormsg');

	elm = f.email;
	msg = "Invalid email.";
	if( !elm.value || !isEmail(elm.value) ) {
		msgboard.html(msg);
		elm.focus();
		return false;
	}
	msg = "Email Existed.";
	if($('#reg1form_cross').attr('class')!='hide') {
		msgboard.html(msg);
		elm.focus();
		return false;
	}
	elm = f.password;
	msg = "Password is required.";
	if(!elm.value) {
		msgboard.html(msg);
		elm.focus();
		return false;
	}
	msg = "Your password must be at least 8 characters";
	if(elm.value.length<8) {
		msgboard.html(msg);
		elm.focus();
		return false;
	}
	elm = f.password1;
	msg = "Password not match.";
	if(elm.value!=f.password.value) {
		msgboard.html(msg);
		elm.focus();
		return false;
	}
	elm = f.dname;
	msg = "Display name is required. Must be between 6 and 50 characters long";
	elm.value = trim(elm.value);
	if(!elm.value || elm.value.length<6 || elm.value.length>50) {
		msgboard.html(msg);
		elm.focus();
		return false;
	}
	elm = f.fname;
	msg = "First name is required.";
	elm.value = trim(elm.value);
	if(!elm.value) {
		msgboard.html(msg);
		elm.focus();
		return false;
	}
	elm = f.lname;
	msg = "Last name is required.";
	elm.value = trim(elm.value);
	if(!elm.value) {
		msgboard.html(msg);
		elm.focus();
		return false;
	}
	msg = "Gender is required.";
	if(!f.gender[0].checked && !f.gender[1].checked) {
		msgboard.html(msg);
		f.gender[0].focus();
		return false;
	}
	elm = f.country;
	msg = "Select a Country.";
	if(elm.selectedIndex<1) {
		msgboard.html(msg);
		elm.focus();
		return false;
	}
	msgboard.html('');
	$('#reg1').slideUp('normal',function(){$('#reg2').slideDown('normal');});
}
function backStep2() {
	$('#reg2').slideUp('normal',function(){$('#reg1').slideDown('normal');});
}
function regStep2() {
	var f = document.regform;
	var elm;
	var msg;
	var msgboard = $('#reg2 div.errormsg');
	var lth = $('#reggenre input:checked').length;
	if(lth<1) {
		msgboard.html('You must select at least one interest.');
		return false;
	}
	msg = "Mobile number is required.";
	if(f.sms_alert[0].checked && !f.contact.value) {
		msgboard.html(msg);
		f.contact.focus();
		return false;
	}
	msgboard.html('');
	$('#reg2').slideUp('normal',function(){$('#reg3').slideDown('normal');});
}
function backStep3() {
	$('#reg3').slideUp('normal',function(){$('#reg2').slideDown('normal');});
}
function regStep3() {
	$('#reg3form_failed').addClass('hide');
	$('#reg3form_success').addClass('hide');
	$('#reg3form').addClass('hide');
	// ajax submit form here
	var msgboard = $('#reg3 div.errormsg');
	msgboard.html("Loading ...");
	var data = $('#regform').serialize();
	$.ajax({
		type: "POST",
		url: "index.php?mod=ajax&sec=regform",
		data: data,
		success: function(msg) {
			msgboard.html("");
			if(msg) {
				$('#reg3form_failed span.failed_msg').html(msg);
				$('#reg3form_failed').removeClass('hide');
			} else {
				$('#reg3form_success').removeClass('hide');
				//refresh_window();
			}
		}
	});
}
function resetStep() {
	$('#reg3').slideUp('normal',function(){$('#reg1').slideDown('normal');});
	$('#reg3form').removeClass('hide');
	$('#reg3form_failed').addClass('hide');
	$('#reg3form_success').addClass('hide');
}
function pollVote(id) {
	if(!id) {
		return;
	}
	var data = $('#pollform'+id).serializeArray();
	if(data.length<1) {
		return;
	}
	var value = data[0].value;
	showLoading();
	$.ajax({
		type: "POST",
		url: "index.php?mod=ajax&sec=poll",
		data: "id="+id+"&value="+value,
		success: function(msg) {
			$('#polloptions'+id ).html(msg);
			hideLoading();
		}
	});
}
function triviaVote(num) {
	//var f = document.triviaform;
	var submit = true;
	var data = $('#triviaform').serializeArray();
	for(i=0;i<num;i++) {
		if(!data[i] && data[i]!=0) {
			submit = false;
			alert('Question '+(i+1)+' no answer.');
			return false;
		}
	}
	var total = 0;
	jQuery.each(data, function(i, field){
		total+=parseInt(field.value);
	});
	// set result here
	if(!total) {
		total = " 0 ";
	}
	$('#triviamarks').html(total);
	$('#triviaform').addClass("hide");
	$('#triviaresult').removeClass("hide");
}
function surveyVote(num) {
	var data = $('#surveyform input.validation').serializeArray();
	for(i=0;i<num;i++) {
		if(data=='' || !data || !data[i] || data[i].value=='') {
			alert('Question '+(i+1)+' no answer.');
			return false;
		}
	}
	// submit to server
	data = $('#surveyform').serialize();
	var url = "index.php?mod=ajax&sec=survey";
	$.ajax({
		type: "POST",
		url: url,
		data: data,
		success: function(msg) {
		}
	});
	
	// set result here
	$('#surveyform').addClass("hide");
	$('#surveyresult').removeClass("hide");
}
function ajaxProgramme(genre_id,page) {
	if(!genre_id || !page) {
		return;
	}
	showLoading();
	var data = "genre_id="+genre_id+"&page="+page+'&view='+view_programmelist;
	var url = "index.php?mod=ajax&sec=programmelist";
	$.ajax({
		type: "POST",
		url: url,
		data: data,
		success: function(msg) {
			$('#tab_content1').html(msg);
			hideLoading();
		}
	});
}
function swapTab(obj) {
	$('a.tab1').removeClass('on');
	obj.addClass('on');
}
function swapView(tab,view,cmd) {
	if(!tab || !view || !cmd) {
		return;
	}
	view = view=='list' ? 1 : 0 ;
	if(tab=="reminder") {
		view_myalertlist = view;
	}else if(tab=="programme") {
		view_programmelist= view;
	}else if(tab=="episode") {
		view_episodelist = view;
	}
	eval(cmd);
}
function showPopup(url) {
	if(!url) {
		return false;
	}
	$('#mypopuploading').removeClass('hide');
	$('#mypopupcontent').addClass('hide');
	if($('#mypopup').css('display')=='none') {
		$('#mypopup').slideDown('normal');
	}
	$.ajax({
		url: url,
		success: function(msg) {
			$('#mypopupcontent').html(msg);
			$('#mypopuploading').addClass('hide');
			$('#mypopupcontent').removeClass('hide');
		}
	});
}
function closePopup() {
	$('#mypopup').slideUp('normal');
}
function showGenre(genre_id) {
	if(!genre_id) {
		return;
	}
	swapTab($('#tabgenre').children('a'));
	$('div.tab_content').addClass('hide');
	$('#tab_content1').removeClass('hide');
	if($('#genre'+genre_id).text()) {
		$('#tabgenre').children('a').text($('#genre'+genre_id).text());
	}
	$('#genrelist').addClass('hide');
	$('#genrelist li.selected').removeClass('selected');
	$('#genre'+genre_id).parent().addClass('selected');
	ajaxProgramme(genre_id,1);
}
function showEpisodeList(pid,page) {
	if(!pid) {
		return;
	}
	showLoading();
	
	//$('#tabepisode a.tab1').click();
	swapTab($('#tabepisode a.tab1'));
	$('div.tab_content').addClass('hide');
	$('#tab_content3').removeClass('hide');
	
	$('#tabepisode').removeClass('hide');
	var url = "index.php?mod=ajax&sec=episodelist";
	var data = "pid="+pid+"&page="+page+'&view='+view_episodelist;
	$.ajax({
		type: "POST",
		url: url,
		data: data,
		success: function(msg) {
			$('#tab_content3').html(msg);
			hideLoading();
		}
	});
}
function showProgramme(eid) {
	if(!eid) {
		return;
	}
	showLoading();
	$.ajax({
		type: "POST",
		url: "index.php?mod=ajax&sec=programme",
		data: "eid="+eid,
		success: function(msg) {
			if(msg) { 
				$('#programme_info').html(msg);
			}
			hideLoading();
		}
	});
}
function setReminder(screening_id , obj) {
	if(!screening_id || !obj) {
		return;
	}
	if(!ismember) {
		swapMenu('login',1);
		return false;
	}
	action = obj.parent().hasClass('on') ? 'delete' : 'add' ;
	if(action=='delete') {
		obj.attr('title',"Click to set a reminder at this showtime");
		obj.parent().removeClass('on');
	} else {
		obj.attr('title',"Click to cancel the reminder at this showtime");
		obj.parent().addClass('on');
	}
	showLoading();
	$.ajax({
		type: "POST",
		url: "index.php?mod=ajax&sec=reminder",
		data: "screening_id="+screening_id+"&action="+action,
		success: function(msg) {
			hideLoading();
		}
	});
}
function ajaxReminder(genre_id,page) {
	if(!page) {
		return;
	}
	showLoading();
	var url = 'index.php?mod=ajax&sec=reminderlist';
	var data = "page="+page+"&view="+view_myalertlist;
	$.ajax({
		type: "POST",
		url: url,
		data: data,
		success: function(msg) {
			$('#tab_content2').html(msg);
			hideLoading();
		}
	});
}
function showLoading() {
	$('#loading').removeClass('hide');
}
function hideLoading() {
	$('#loading').addClass('hide');
}
function getUrlVars(url){
	var vars = [], hash;
	if(url) {
		var hashes = url.slice(url.indexOf('?') + 1).split('&');
	} else {
		var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
	}
	for(var i = 0; i < hashes.length; i++){
		hash = hashes[i].split('=');
		vars.push(hash[0]);
		var text = hash[1];
	text = unescape(text);
		vars[hash[0]] = text;
	}
	return vars;
}
$(document).ready(function(){
	showGenre(-1);
	if(popupid) {
		showPopup('index.php?mod=ajax&sec=staticpage&id='+popupid);
	}
	if(eid) {
		showProgramme(eid);
	}
	if(token) {
		resetPasswordStep2();
	}
});
