/**
 * @author Kristian Rasmussen
 */
function getCookie( check_name ) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f
	
	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );
		
		
		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
	
		// if the extracted name matches passed check_name
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
	{
		return null;
	}
}			


function checkUpdate(form){
	var errorText = $('error-box-text');
	if(!checkPassword($('register-password'), errorText)){return false;}
	if(!checkForLength($('register-alias'), errorText, 'You need an alias/nick(2+)')){return false;}
	if(!checkForLength($('register-firstname'), errorText, 'You need a firstname(2+)')){return false;}
	if(!checkForLength($('register-lastname'), errorText, 'You need a lastname(2+)')){return false;}
	//submit
	//$(form).fireEvent('submit');
	form.submit();
}
//TODO rewrite this crap
function checkRegistration(form){
	var errorText = $('error-box-text');
	if(!checkEmail($('register-mail'), errorText, 'Not a valid email address')){return false;}
	if(!checkPassword($('register-password'), errorText)){return false;}
	if(!checkForLength($('register-alias'), errorText, 'You need an alias/nick(2+)')){return false;}
	if(!checkForLength($('register-firstname'), errorText, 'You need a firstname(2+)')){return false;}
	if(!checkForLength($('register-lastname'), errorText, 'You need a lastname(2+)')){return false;}
	//submit
	form.submit();
}

function burnError(fadeout){
	var errorBox = $('error-box');
	var fx = new Fx.Styles(errorBox, {
		duration: 3000,
		wait: true,
		transition: Fx.Transitions.Quad.easeOut
	});
	errorBox.setStyle('display','block');	
	
	var fade = 1;
	if(fadeout){
		fade = 0;
	}	
	fx.start({'background-color': ['#DD3C10', '#FFEBE8'],'opacity': [1, fade]})
}

function burnErrorAway(){
	var errorBox = $('error-box');
	var fx = new Fx.Styles(errorBox, {
		duration: 3000,
		wait: true,
		transition: Fx.Transitions.Quad.easeOut
	});
	errorBox.setStyle('display','block');		
	fx.start({'background-color': ['#DD3C10', '#FFEBE8'],'opacity': [1, 0]})
}

function burnSuccess(text){
	var errorBox = $('error-box');
	errorBox.setStyle('border-color', '#7BA033');
	var errorText = $('error-box-text');
	
	var fx = new Fx.Styles(errorBox, {
		duration: 5000,
		wait: true,
		transition: Fx.Transitions.Quad.easeOut
	});
	errorText.setText(text);
	errorBox.setStyle('display','block');		
	fx.start({'background-color': ['#7BA033', '#D5E7B3'],'opacity': [1, 0]})
}

function checkPassword(password, errorText){
	if(password.getProperty('value').length < 5){
		errorText.setText('Password too short(5+) ');
		burnError();
		return false;
	}
	
	if(password.getProperty('value').contains(' ')){
		errorText.setText('You cannot have space in password');
		burnError();
		return false;
	}
	return true;
}

function checkForLength(element, errorText, massage){
	if(element.getProperty('value').clean().length < 2){
		errorText.setText(massage);
		burnError();
		return false;
	}
	return true;
}

function checkEmail(element, errorText, message){	
    var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
    if(pattern.test(element.getProperty('value'))){         
		return true;   
    }else{   
		errorText.setText(message);
		burnError();
		return false; 
    }
}

function populateNewUserForm(username, password, firstname, lastname, email){
	var fx = new Fx.Styles($('error-box'), {
		duration: 3000,
		wait: true,
		transition: Fx.Transitions.Quad.easeOut
	});
	
	$('register-mail').setProperty('value',email);
	$('register-password').setProperty('value',password);
	$('register-alias').setProperty('value',username);
	$('register-firstname').setProperty('value',firstname);
	$('register-lastname').setProperty('value',lastname);
	$('error-box-text').setText('That email address is already used');
	fx.start({'background-color': ['#DD3C10', '#FFEBE8'],'opacity': [1, 1]})
	$('error-box').setStyle('display','block');	
}

function load(url, container, type) {
	$('loader').setStyle('display', 'block');
	$(container).setStyle('display', 'none');
	$(container).empty();
	new Ajax(url, {
		method: 'get',
		update: $(container),
		onComplete : function(){
			$(container).setStyle('display', 'block');
 			$('loader').setStyle('display', 'none');
			if(type == 'profile'){
				addSubmitFormEvent();
			}
			else if(type == 'view-questions'){
				addSlideEffectToQuestions();
				addQuestionLinksAction();	
			}
		},
		onFailure : function(){
			alert("You have been logged out.");
			window.location = "http://hangout.voksent.com"
		}
	}).request();
}

function addSubmitFormEvent(){
	$('profile-update-form').addEvent('submit', function(e) {
		
		var field = $('center-profile-container').empty();
		$('loader').setStyle('display', 'block');
		new Event(e).stop();
 		this.send({
			
			update: field,
			onComplete : function() {
				$('loader').setStyle('display', 'none');
			},
			onFailure : function(){
				alert("Error");
			}
		});
	});
}

function showLogin(message){
	$('login-message').setText(message);
}

var mySlide = {};
function mainPage(open){
	mySlide = new Fx.Slide('new-user-form-slide');
	$('top-new-profile').addEvent('click', function(e){
		e = new Event(e);
		mySlide.toggle();
		e.stop();
	});
	$('form-new-profile').addEvent('click', function(e){
		e = new Event(e);
		mySlide.toggle();
		e.stop();
	});
	if(!open){
		mySlide.hide();
	}
	
	var loginSlide = new Fx.Slide('login-box');
	
	$('login-box-toggler').addEvent('click', function(e){
		e = new Event(e);
		loginSlide.toggle();
		e.stop();
	});
}

window.addEvent('domready', function() {
	if($('edit-profile') != null){
		$('edit-profile').addEvent('click', function(){
			load('loader.php/?edit=profile', 'center-profile-container', 'profile');
		});
	}
	if ($('chat-container') != null) {
		var chat = new Fx.Slide('chat-container');
		$('chat-toggle').addEvent('click', function(e){
			e = new Event(e);
			chat.toggle();
			e.stop();
		});
		chat.hide();
	}
	if ($('new-user-form-slide') != null) {
		mainPage(false);
	}
	if ($('login-input-id') != null) {
		$('login-input-id').focus();
	}
	//startChat();
});  

