/**
 * @author Ron
 */
$(document).ready(function(){
	getSession(locked);

    $('#login .sbm').click(login = function(){
        $('#lform').submit();
    });
	$('#login .logout').click(logout = function(){
        deleteCookie('sid');
		$('#lform').toggle();
		$('#login .login_buttons').html('<a href="#" class="sbm" onclick="login()">Login</a> <a href="#">Register</a><span id="lmessage"></span>');
		location.reload(true);
		/*if(locked){
			
			$('#text').toggle();
			$('#register').toggle();
		}*/
    });
	$('.regopen').click(regForm = function(){
		if(!locked){
			$('#text').toggle();
			$('#login').toggle();
		}
    });
	$('#register .sbm').click(register = function(){
        $('#rform').submit();
		return false;
    });
    var login_options = {
        //target: '#lmessage', 	// target element(s) to be updated with server response 
        beforeSubmit: beforeLogin, 			// pre-submit callback 
		success: function(data){
			data = _ajax(data);
			if( parseInt( data['check'] ) ){
				$('#lform').toggle();
				setCookie('sid', data['sid']);
				$('.login_buttons').html('<a href="#" class="logout" onclick="logout()">Logout</a><span id="lmessage"></span>');
				location.reload(true);
				/*$('#text').toggle();
				$('#register').toggle();*/
			}
			$('#lmessage').html( data['answerword'] );
		}, 				// post-submit callback
        url: 'includes/login.php',	// override for form's 'action' attribute 
        type: 'post', 					// 'get' or 'post', override for form's 'method' attribute
        resetForm: true 				// reset the form after successful submit
    };
	
	var register_options = {
        //target: '#lmessage', 	// target element(s) to be updated with server response 
        beforeSubmit: beforeRegister, 			// pre-submit callback 
		success: function(data){
			data = _ajax(data);
			if( parseInt( data['check'] ) ){
				$('#lform').toggle();
				setCookie('sid', data['sid']);
				$('.login_buttons').html('<a href="#" class="logout" onclick="logout()">Logout</a><span id="lmessage"></span>');
				/*$('#text').toggle();
				$('#register').toggle();*/
			}
			$('#rmessage').html( data['answerword'] );
		}, 				// post-submit callback
        url: 'includes/register.php',	// override for form's 'action' attribute 
        type: 'post', 					// 'get' or 'post', override for form's 'method' attribute
        resetForm: true 				// reset the form after successful submit
    };
    
    // bind to the form's submit event 
    $('#lform').submit(function(){
    	error = 'Processing...';
        $('#lmessage').html(error);
        $(this).ajaxSubmit(login_options);
        return false;
    });
	
	$('#rform').submit(function(){
    	error = 'Processing...';
        $('#rmessage').html(error);
        $(this).ajaxSubmit(register_options);
        return false;
    });
});
function beforeLogin(formData, jqForm, options){
    var error = '';
    var form = jqForm[0];
    if (!form.username.value || !form.password.value) {
        error = error + 'Please fill all fields';
    }
    if (error != '') {
        $('#lmessage').empty();
        $('#lmessage').append(error);
        return false;
    }
    else {
        return true;
    }
}

function beforeRegister(formData, jqForm, options){
    var error = '';
    var form = jqForm[0];
    if (
		!form.fname.value || !form.lname.value ||
		!form.email.value ||
		!form.password.value || !form.confirm.value
	) {
        error = error + 'Please fill all required fields';
    }
    if (error != '') {
        $('#rmessage').empty();
        $('#rmessage').append(error);
        return false;
    }
    else {
        return true;
    }
}

function _ajax(str){
	var anchor = "";
	var GET = Array();

	if(str.indexOf('#')!=-1){
		anchor = str.substr(str.indexOf('#')+1);
		str = str.substr(0,str.indexOf('#'));
	}
	params = str.split('&');
	for (i=0; i<params.length; i++){
		var keyval = params[i].split('=');
		GET[keyval[0]]=keyval[1];
	}
	return (GET);
};

function setCookie(name, value, expires, path, domain, secure) {
	if (!name || !value) return false;
	var str = name + '=' + encodeURIComponent(value);
	
	if (expires) str += '; expires=' + expires.toGMTString();
	if (path)    str += '; path=' + path;
	if (domain)  str += '; domain=' + domain;
	if (secure)  str += '; secure';
	
	document.cookie = str;
	return true;
}

function getCookie(name) {
	var pattern = "(?:; )?" + name + "=([^;]*);?";
	var regexp  = new RegExp(pattern);
	
	if (regexp.test(document.cookie))
	return decodeURIComponent(RegExp["$1"]);
	
	return false;
}

function deleteCookie(cookie_name) {
	var cookie_date = new Date ();
	cookie_date.setTime (cookie_date.getTime() - 1);
	document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}

function getSession(lock){
	var postData = 'sid='+getCookie('sid');
	$.ajax({
		async: false,
		type: "POST",
		data: postData,
		url: "includes/login.php",
		success: function(data){
			data = _ajax(data);
			if( parseInt( data['check'] ) ){
				$('#lform').toggle();
				$('.login_buttons').html('<a href="#" class="logout" onclick="logout()">Logout</a><span id="lmessage"></span>');
				
			}else if(lock){
				//$('#text').toggle();
				$('#text').html( '<div id="login">'+$('#login').html()+'</div>' );
				$('#login').toggle();
			}
			$('#lmessage').append( data['answerword'] );
		}
	});
}
