var pending_url;
var pending_callback;

function user_logged_id() {
	if(my_user_id != -1) {
		return true;
	} else {
		return false;
	}
}

function getCaret(el) {
	if (el.selectionStart) {
		return el.selectionStart;
	} else if (document.selection) {
		el.focus();
	
		var r = document.selection.createRange();
		if (r == null) {
			return 0;
		}
	
		var re = el.createTextRange(),
		rc = re.duplicate();
		re.moveToBookmark(r.getBookmark());
		rc.setEndPoint('EndToStart', re);
		
		return rc.text.length;
	}
  	return 0;
}

/*
window.onload = function () {
	var textarea = document.getElementById('message-content');
	
	textarea.onmouseup = textarea.onkeyup = function () {
		console.log(getCaret(textarea));
	};
};
*/

function registerPendingRequest(url, callback, params) {
	if(url != undefined) {
		pending_url = url;
	} else {
		pending_url = "";
	}
	
	if(callback != undefined) {
		pending_callback = callback;
	} else {
		pending_callback = "";
	}
}

function show_login_form(url, callback, params) {
	registerPendingRequest(url, callback, params);
	$('#basic-modal-content').modal();
}

function getUrlVars() {
    var vars = [], hash;
    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]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

function initUserForm() {
	if(!user_logged_id()) {
		// alert("not-logged-in");
		var login_form = '<div id="basic-modal-content" class="login-form">';
		login_form += '<div class="top-transparency-border">&nbsp;</div>';
		login_form += '<div class="repeated-content-border">';
		login_form += '<div class="notifications-content">';
		login_form += '<h3>Log in</h3>';
		login_form += '<p class="login-text">Login to perform that action!</p>';
		login_form += '<form class="pop-up-login">';
		login_form += '<p>';
		login_form += '<label for="username">Username:</label>';
		login_form += '<input type="text" id="login-username" />';
		login_form += '</p>';
		login_form += '<p>';
		login_form += '<label for="password">Password:</label>';
		login_form += '<input type="password" id="login-password" />';
		login_form += '</p>';
		login_form += '<p>';
		login_form += '<input class="log-me-in" type="button" id="login-submit" value="Log in" />';
		login_form += '</p>';
		login_form += '</form>';
		login_form += '<p class="error"></p>';
		login_form += '</div>';
		login_form += '</div>';
		login_form += '<div class="bottom-transparency-border">&nbsp;</div>';
		login_form += '</div>';
		
		$("body").append(login_form);
		
	}
}

$("#login-submit").live("click", function() {
	$.ajax({
		type: "POST",
		url: "?params=en/user/ajax",
		data: "fun=rvLogin&username="+$("#login-username").val()+"&password="+$("#login-password").val(),
		dataType: "html",
		success: function(_response) {
			var obj = $.parseJSON(_response);
			if(obj.msg == 0) {
				if(pending_url != "") {
					window.location = pending_url;
				} else {
					if(pending_callback != "" && pending_callback != undefined) {
						eval(pending_callback+"();");
					}
				}
			} else {
				$("#basic-modal-content .error").html("Username and/or password does not match");
			}
		}
	});
});

function equalHeight(group) {
	var tallest = 0;
	group.each( function() {
		var thisHeight = $(this).height();
		if(thisHeight > tallest) {
			tallest = thisHeight;
		}
	});
	group.height(tallest);
}

function ValidURL(value) {
	return /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);
}

function getCookie(c_name) {
	var i, x, y, ARRcookies = document.cookie.split(";");
	for( i = 0; i < ARRcookies.length; i++) {
		x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
		y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
		x = x.replace(/^\s+|\s+$/g, "");
		if(x == c_name) {
			return unescape(y);
		}
	}
}

function setCookie(c_name, value, exdays) {
	var exdate = new Date();
	exdate.setDate(exdate.getDate() + exdays);
	var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
	document.cookie = c_name + "=" + c_value;
}

function checkCookie() {
	var username = getCookie("username");
	if(username != null && username != "") {
		alert("Welcome again " + username);
	} else {
		username = prompt("Please enter your name:", "");
		if(username != null && username != "") {
			setCookie("username", username, 365);
		}
	}
}

