
$(document).ready(
		function(){
			bt.init();
		}
);

var bt = bt || {};

bt.init = function(){
	loginform.init();
	$("#btn_logout").click( bt.logout );
	$("#login").click(bt.login);
	$("#btn_register").click(function(){bt.loadRegisterForm();});
	$("#btn_forgot_password").click(bt.forgotPassword );
	$("#btn_my_tickets").click(bt.doDisplayMyTickets);
	$("#btn_change_password").click(bt.displayChangePasswordDialog);
	bt.dialog.init(bt.dialogs.registration);
	bt.dialog.init(bt.dialogs.warnlogin);
	$('ul.sf-menu').superfish();
}


bt.ajax = function(b,t) {
	var result;
	
	$.ajax({
		type: "POST",
		async: false,
		url:  "roland.php",
		data: b, 
		success: function(a,b,c){ result = a; },
		error: function(){ result = false; }
	});
	return result;
};

bt.toJSON = function(j)
{
	return $.parseJSON( j );
}

bt.notifyBar = function( a , type) {
	if ( !type ) type = 'success';
	$.notifyBar({html: a,delay: 10000,close:true,cls: type })
};

bt.log = function(a)
{
	console.log(a);
}

bt.redirect = function(a){ location.href= a == null ? '' :'?task='+a;}

/**
 * crate from the input fields a json object
 * */
bt.serializeElement = function(a)
{
	
	var  
	types= 'input, select , textarea',
	r = {},
	i=0;      
	$(a).find(types).each(function(){    	
		var $this =$(this),n = $this.attr('name'),v = $this.val(),t=$this.attr('type'),s = false;
		if ( t 	== 'checkbox')
			if ( !$this.is(':checked'))
				s = true;
		if ( t == 'submit' )
				s = true;
		
		
		if ( !s){
			if ( !r[n]){
				r[n] =v;			
			}else{
				if (r[n] instanceof Array ){
					r[n].push(v);
				}else{
					var t = r[n];
					r[n]=[t];
					r[n].push(v);
				}
			}
		}
    } );
	 return r;
}


bt.leftPad = function(a,b,c){
	var r = ''+a;
	if ( c == undefined)
		c = '0';
	while( r.length < 2 )
		r = c+r;
	return r;
}

bt.convertDateToStr = function(a){
	var	y = a.getFullYear(),mo = a.getMonth()+1,d = a.getDate(),h = a.getHours(), mi = a.getMinutes();
	return ''+y+'-'+bt.leftPad(mo,'0') +'-'+bt.leftPad(d,'0') + ' ' + bt.leftPad(h,'0') +':' + bt.leftPad(mi,'0');
};

bt.convertStrToDate = function(a){
	var y = parseInt(a.substr(0,4),10),
		mo = parseInt(a.substr(5,2),10),
		d = parseInt(a.substr(8,2),10),
		h = parseInt(a.substr(11,2),10)
		mi = parseInt(a.substr(14,2),10)
	return new Date(y,mo-1,d,h,mi);
}

bt.dialog = {};
/*$param a: json {selector: 'dialogselector',options: '' }*/
bt.dialog.init = function(a){
	//use jquery ui
	$(a.selector).dialog("destroy");
	$(a.selector).dialog(a.options);
}

bt.dialog.open = function(a){
	$(a.selector).dialog("open");
}

bt.dialogs={};

bt.dialogs.registration = {
		selector : '.registration',
		options :{
			show: 'puff',
			modal: true,
			autoOpen: false,
			closeText: 'Bezár',
			draggable: true,
			title: 'Regisztráció',
			resizable: false,
			buttons: { 
				"Regisztráció" :function(){var a= bt.register(); if ( a ) $(this).dialog("close"); },
				"Mégsem" : function(){ $(this).dialog("close");}
			}
		}			
	};

bt.dialogs.warnlogin = {
		selector : '.bt_popup',
		options :{
			show: 'puff',
			modal: true,
			autoOpen: false,
			closeText: 'Bezár',
			draggable: true,
			title: 'Információ',
			resizable: false,
			buttons: { 
				"Regisztráció" :function(){ $(this).dialog("close");bt.loadRegisterForm();  },
				"Mégsem" : function(){ $(this).dialog("close");}
			}
		}			
	};

bt.dialogs.forgotpassword = {
		selector : '.bt_popup',
		options :{
			show: 'puff',
			modal: true,
			autoOpen: false,
			closeText: 'Bezár',
			draggable: true,
			title: 'Jelszó küldése e-mailben',
			resizable: false,
			buttons: { 
				"Küldés" :function(){ var a = bt.sendNewPassword(); if ( a == true ) $(this).dialog("close"); },
				"Mégsem" : function(){ $(this).dialog("close");}
			}
		}			
	};

bt.dialogs.changepassword = {
		selector : '.bt_popup',
		options :{
			show: 'puff',
			modal: true,
			autoOpen: false,
			closeText: 'Bezár',
			draggable: true,
			title: 'Jelszóváltoztatás',
			resizable: false,
			buttons: { 
				"Megváltoztat" :function(){ var a = bt.changePassword(); if ( a == true ) $(this).dialog("close"); },
				"Mégsem" : function(){ $(this).dialog("close");}
			}
		}			
	};

bt.register=function(){  var p = bt.serializeElement($(".registration")) ; p.action = 'register.apply'; var r = bt.ajax(p);
	if ( !r){
		bt.notifyBar('A regisztráció sikertelen volt!Kérjük próbálja meg később!','error');
		return false;
	}
	else{
		r = bt.toJSON(r);
		if ( r.code == 1){
			bt.notifyBar(r.message,'error');
			return false;
		}else{
			bt.notifyBar(r.message );
			bt.loadLogininfo(); 
			bt.loadTimeSheet();
			return true;
		}
	}
};

bt.dialog.close = function(a){	$(a.selector).dialog("close"); }
bt.middleContent = function(a){$("#middle_content").html(a);};//set the content for the main content div
bt.mainContent = function(a){$("#main_content").html(a);};//set the content for the main content div
bt.loadRegisterForm2 = function(){ var c = bt.ajax({action:'register.form'});  bt.middleContent(c) ;loginform.hideBox(); bt.registration.init(); };//display the reg form in the mian content
bt.loadRegisterForm = function(){ var c = bt.ajax({action:'register.form'}); var d = bt.dialogs.registration; $(d.selector).html(c);loginform.hideBox(); bt.dialog.open(d); bt.registration.init(); };//display the reg form in the mian content
bt.loadLogininfo = function(){ var c =  bt.ajax({action:'login.info'}); $("#app_login").html(c); bt.init(); };//load the login information in to the top section
bt.login = function(){ var r = bt.serializeElement('#loginForm'); r.action ='login';  var  a = bt.ajax(r); if (  a == 1) { bt.notifyBar('A bejelentkezés sikerült!');bt.loadLogininfo(); $('ul.sf-menu').superfish();  bt.reloadTimeSheetIfPresent(); }else{bt.notifyBar('A bejelentkezés sikertelen volt. Kérem próbálja meg újra!','error')}; return false;}
bt.logout = function(){	bt.ajax({action:'logout'});	bt.loadLogininfo(); /*bt.reloadTimeSheetIfPresent();*/ bt.redirect('index.php');}
bt.loadTimeSheet = function(){ var c = bt.ajax({action:"timesheet.main"}); bt.mainContent(c); bt.timesheet.init();}
bt.reloadTimeSheetIfPresent = function(){	if ( $("div:.timesheet").length > 0 )	$("#calendar").weekCalendar("refresh"); }
bt.loginorregisterDialog= function(){var c =  bt.ajax({action:'timesheet.login.or.reg'}); var d = bt.dialogs.warnlogin; $(d.selector).html(c);  bt.dialog.init(d);  bt.dialog.open(d);}
bt.forgotPassword = function(){ loginform.hideBox(); var c =  bt.ajax( { action:'user.password.dialog' } );    var d = bt.dialogs.forgotpassword; $(d.selector).html(c); bt.dialog.init(d); bt.dialog.open(d);};
bt.sendNewPassword = function(){  var r = bt.serializeElement('.dv_forgot_password'); r.action ='user.password.change'; 	var  a = bt.ajax(r); if ( a == false){ bt.notifyBar('Hiba történt az új jelszó kérése közben! Kérem próbálja meg később!','error'); return false;	}else{	var j = bt.toJSON(a);	var type = j.code == '0' ? 'success' : 'error';	bt.notifyBar( j.msg , type )};  return ( j.code == '0'); }
bt.doDisplayMyTickets = function(){  var c = bt.ajax({action:"tickets.list"}); bt.mainContent(c);  }
bt.displayChangePasswordDialog = function(){   var c =  bt.ajax( { action:'user.password.change.dialog' } );    var d = bt.dialogs.changepassword; $(d.selector).html(c); bt.dialog.init(d); bt.dialog.open(d);};
bt.changePassword = function(){  var r = bt.serializeElement('.container_change_password'); r.action ='user.password.change2'; 	var  a = bt.ajax(r); if ( a == false){ bt.notifyBar('Hiba történt a jelszó változtatása közben! Kérem próbálja meg később!','error'); return false;	}else{	var j = bt.toJSON(a);	var type = j.code == '0' ? 'success' : 'error';	bt.notifyBar( j.msg , type )};  return ( j.code == '0'); }

