/**********************************
	INIT
**********************************/

	var signInPhpSrc = 'http://'+document.domain+'/php/includes/signIn.php';

/**********************************
	FUNZ
**********************************/

	//dump 'sign in' html into appropriate div
	function handleSigninHtml (html){
		var resultDiv 		= document.getElementById('sign_in_formdiv');
		var resultParent	= resultDiv.parentNode;
		
		//if it's blog, refresh the page
		var blog = false;		
		if (document.URL.indexOf('blog') >= 0){
			blog = true;
		}
		
		if (blog){
			handleToRefresh(null);
		} else if (resultDiv){
			resultParent.removeChild(resultDiv);
			resultParent.innerHTML += html;
		}
	}
	
	//need to refresh page to clear signed in stuff
	function handleToRefresh (html){
		location.reload(true);
	}
	
	function checkAndSubmitSignin(form, php_src, handler){
		
		var varsComplete = true;
		var error		 = '';
		
		//check form
		for (var i=0; i<form.elements.length; i++){
			var value = form.elements[i].value;
			if (value == "" || value == null){
				var formName = form.elements[i].name;
				formName.replace("_", "&nbsp;");
				form.elements[i].focus();
				error += 'Please enter '+formName;
				varsComplete = false;
				break;
			}
		}
			
		//if ok, submit
		if (varsComplete){
			for (var i=0; i<form.elements.length; i++){
				form.elements[i].disabled = true;
			}
			submitForm(form, php_src, handler, true);
		} else {
			var parentDiv 	= form.parentNode;
			var errorDiv	= document.createElement('div');
			errorDiv.id		= 'errorDiv';
			errorDiv.className	 = 'errorDiv';
			errorDiv.style.color =  '#ff0000';
			errorDiv.innerHTML	 = error;
			parentDiv.appendChild(errorDiv);
		}
	}
	
/**********************************
	REGISTER
**********************************/
	
	function logout (){
		
		//get user id if exists
		var id;
		var cookie_array = document.cookie.split(";");
		for (var i=0; i<cookie_array.length; i++){
			var cookie_name = cookie_array[i].split('=')[0].replace(" ","");
			var cookie_val = cookie_array[i].split('=')[1];
			if (cookie_name == 'userid'){
				id = cookie_val;
				break;
			}
		}
		
		//decide to refresh if on blog page
		var blog = false;
		
		if (document.URL.indexOf('blog') >= 0){
			blog = true;
		}
		
		//refresh current user if on user page
		var user = false;		
		if (document.URL.indexOf('directory') >= 0){
			user = true;
		}
		
		if (user){
			getCurrentUser(id);
		}
		
		params = 'action=sign_out';
		
		if (blog){
			request(null, signInPhpSrc, handleToRefresh, false, params, true);
		} else {
			request(null, signInPhpSrc, handleSigninHtml, false, params, true);
		}
	}
	
/**********************************
	REGISTER
**********************************/
	var registerDiv;
	
	function addRegisterReqHandler(html){
		var registerDiv = document.getElementById("sign_in_formdiv");
		var resultParent = document.getElementById("sign_in");
		resultParent.removeChild(registerDiv);
		resultParent.innerHTML += html;
	}
	
	function addRegister (parentDivName){
		registerDiv = document.getElementById(parentDivName);
		var params = 'action=getRegister';
		request(null, signInPhpSrc, addRegisterReqHandler, false, params, true);
	}
	
	function addSignIn (parentDivName){
		registerDiv = document.getElementById(parentDivName);
		var params = 'action=getSignin';
		request(null, signInPhpSrc, addRegisterReqHandler, false, params, true);
	}
	
	function checkAndSubmit(form, php_src, handler){
		
		var varsComplete = true;
		var error		 = '';
		
		//check form
		for (var i=0; i<form.elements.length; i++){
			var value = form.elements[i].value;
			if (value == "" || value == null){
				var formName = form.elements[i].name;
				formName.replace("_", "&nbsp;");
				form.elements[i].focus();
				error += 'Please enter '+formName;
				varsComplete = false;
				break;
			}
		}
		
		//check password + repeat pw
		if (varsComplete && form.password.value != form.re_password.value){
			form.password.focus();
			error += 'Passwords do not match';
			varsComplete = false;
		}
		
		if (form.email){
			//check for valid email
			var emailStr = form.email.value;
			var apos	 = emailStr.indexOf("@");
			var dotpos	 = emailStr.lastIndexOf(".");
		
			if (varsComplete && (apos <1 || dotpos < 2)){
				form.email.focus();
				error += 'Invalid Email Address';
				varsComplete = false;
			}
		}
		
		//if ok, submit
		if (varsComplete){
			for (var i=0; i<form.elements.length; i++){
				form.elements[i].disabled = true;
			}
			submitForm(form, php_src, handler, true);
		} else {
			var parentDiv 	= form.parentNode;
			var errorDiv	= document.createElement('div');
			errorDiv.id		= 'errorDiv';
			errorDiv.className	 = 'errorDiv';
			errorDiv.style.color =  '#ff0000';
			errorDiv.innerHTML	 = error;
			parentDiv.appendChild(errorDiv);
		}
	}
	
	function removeError(divname){
		var errorDiv	= document.getElementById('errorDiv');
		if (errorDiv){
			var parentDiv  	= errorDiv.parentNode;
			parentDiv.removeChild(errorDiv);
		}
	}
