//global vars, for storing login-key
var lightuser_submit_onclick;
var lightuser_submit_innerHTML;
var lightuser_submit_id;

function newXMLHttpRequestLightuser() {
	var xmlreq = false;
	if (window.XMLHttpRequest) {
		xmlreq = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
    		// Try ActiveX
		try {
			xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e1) {
			// first method failed
			try {
				xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e2) {
				 // both methods failed
			}
		}
 	}
   	return xmlreq;
}

function getReadyStateHandlerLightuser(req, responseXmlHandler) {
	return function () {
		if (req.readyState == 4) {
			if (req.status == 200) {
	        		responseXmlHandler(req.responseXML);
			} 
    	}
 	}
}

function updateLightuser(form){
    var req = newXMLHttpRequestLightuser();
    var querystring = '';
	//register the callback handler function
    var callbackHandler = getReadyStateHandlerLightuser(req, lightuserResponse);
    req.onreadystatechange = callbackHandler;
    req.open("POST", "/includes/lightuser_update.php", true);
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    //get the value from the text input element and send it to server
	for (var i = 0; i < form.elements.length; i++) {
		if (!form.elements[i].disabled) {
			querystring += form.elements[i].name + '=' + encodeURIComponent((form.elements[i].value)) + '&';
			var id = form.elements[i].id;
			if (id != "lightuser_uid" && id != "" && id != null) {
				var e = document.getElementById(id + '_errormessage');
				if (e!=null)
					e.innerHTML = '';
			}
		}
	};
	req.send(querystring);
	lockButton('lightuser_update_button');
}

function lightuserResponse(lightuserXML){
	var errors = lightuserXML.getElementsByTagName("error");
	var successes = lightuserXML.getElementsByTagName("success");
	
	for (var i=0; i < errors.length; i++){
		var e = document.getElementById(errors[i].getAttribute('key')+'_errormessage');
		if (e!=null)
			e.innerHTML=errors[i].getAttribute('desc');
	}
	for (var i = 0; i < successes.length; i++) {
		var e = document.getElementById('input_' + successes[i].getAttribute('key'));
		if (e != null) 
			e.disabled = true;
		
		var e = document.getElementById(successes[i].getAttribute('key') + '_errormessage');
		if (e != null) {
			e.innerHTML = successes[i].getAttribute('desc');
			e.style.color = '#ffffff';
		}
	}
	
	if (errors.length==0)
		window.location.reload(false);
		//window.location.href=window.location.href;
	else
		unlockButton();
}

function loginLightuser(form){
	var req = newXMLHttpRequestLightuser();
	var querystring = '';
	//register the callback handler function
	var callbackHandler = getReadyStateHandlerLightuser(req, lightuserResponse);
	req.onreadystatechange = callbackHandler;
	req.open("POST", "/includes/lightuser_login.php", true);
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	//get the value from the text input element and send it to server
	for (var i = 0; i < form.elements.length; i++) {
		if (!form.elements[i].disabled) {
			querystring += form.elements[i].name + '=' + encodeURIComponent((form.elements[i].value)) + '&';
			var id = form.elements[i].id;
			if (id != "lightuser_uid" && id != "" && id != null) {
				var e = document.getElementById(id + '_errormessage');
				if (e!=null)
					e.innerHTML = '';
			}
		}
	};
	lockButton('lightuser_login_button');
	req.send(querystring);
}

function lockButton(id){
	var e = document.getElementById('lightuser_uid');
	var uid = "";
	if (e != null) {
		uid=e.value;
	}
	lightuser_submit_id=id+uid;
	e = document.getElementById(lightuser_submit_id)
	lightuser_submit_onclick = e.onclick;
	lightuser_submit_innerHTML = e.innerHTML;
	
	e.style.cursor='';
	e.innerHTML='Vent venligst...';
	e.onclick='';
}

function unlockButton(){
	var e = document.getElementById(lightuser_submit_id);
	e.onclick = lightuser_submit_onclick;
	e.innerHTML = lightuser_submit_innerHTML;
	e.style.cursor='pointer';
}

function createLightuser(form){
    var req = newXMLHttpRequestLightuser();
    var querystring = '';
	//register the callback handler function
    var callbackHandler = getReadyStateHandlerLightuser(req, lightuserResponse);
    req.onreadystatechange = callbackHandler;
    req.open("POST", "/includes/lightuser_create.php", true);
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    //get the value from the text input element and send it to server
	for (var i=0;i<form.elements.length;i++){
		if (!form.elements[i].disabled) {
			querystring += form.elements[i].name + '=' + encodeURIComponent((form.elements[i].value)) + '&';
			var id = form.elements[i].id;
			if (id != "lightuser_uid" && id != "" && id != null) {
				var e = document.getElementById(id + '_errormessage');
				if (e!=null)
					e.innerHTML = '';
			}
		}
	};
	lockButton('lightuser_create_button');
	req.send(querystring);
}

function subsribeNewsletter(email){
    var req = newXMLHttpRequestLightuser();
    var querystring = '';
	//register the callback handler function
    var callbackHandler = getReadyStateHandlerLightuser(req, subscribeNewsletterResponse);
    req.onreadystatechange = callbackHandler;
    req.open("POST", "/includes/lightuser_subscribe.php", true);
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    //get the value from the text input element and send it to server
	lockButton('request_newsletter');
	req.send('email='+encodeURIComponent(email));
}

function subscribeNewsletterResponse(lightuserXML){
	var errors = lightuserXML.getElementsByTagName("error");
	var successes = lightuserXML.getElementsByTagName("success");
	
	for (var i=0; i < errors.length; i++){
		var e = document.getElementById('request_newsletter_error');
		if (e!=null)
			e.innerHTML=errors[i].getAttribute('desc');
		unlockButton();
	}
	if (errors.length==0){
		document.getElementById('request_newsletter').innerHTML='Du abonnerer nu p&aring; bold.nyhedsbrev';
		$.cookie("no_newsletter",true,{ path: '/', expires: 365 });
		$('.close_newsletter_newslist').hide();
		$('#newslist_newsletter_widget').fadeOut(5000);

		//document.getElementById('light_c').style.display='none';
		//document.getElementById('fade_c').style.display='none';
	}
}

function validateEmail(){
    var req = newXMLHttpRequestLightuser();
    var querystring = '';
	//register the callback handler function
    var callbackHandler = getReadyStateHandlerLightuser(req, lightuserResponse);
    req.onreadystatechange = callbackHandler;
    req.open("POST", "/lightuser/validate_email.php", true);
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    //get the value from the text input element and send it to server
	req.send();
}

function utf8encode(string) {
	string = string.replace(/\r\n/g,"\n");
	var utftext = "";

	for (var n = 0; n < string.length; n++) {

		var c = string.charCodeAt(n);

		if (c < 128) {
			utftext += String.fromCharCode(c);
		}
		else if((c > 127) && (c < 2048)) {
			utftext += String.fromCharCode((c >> 6) | 192);
			utftext += String.fromCharCode((c & 63) | 128);
		}
		else {
			utftext += String.fromCharCode((c >> 12) | 224);
			utftext += String.fromCharCode(((c >> 6) & 63) | 128);
			utftext += String.fromCharCode((c & 63) | 128);
		}

	}
		return utftext;
}

function showLoginRequiredBox(informationRequired, textDescription) {
	$ = jQuery;
	var container = $('#container');
	var overlayDiv = $('<div></div>').appendTo($('body')).css({
		background: 'transparent url(http://static.bold.dk/direkte/beta/icons/alpha_transparent_pixel.png) repeat', 
		'z-index': 9900, 
		position: 'absolute', 
		left: container.offset().left + 'px', 
		top: container.offset().top + 'px', 
		width: container.width() + 'px', 
		height: container.height() + 'px'
	});
	$.post('/includes/lightuser_box.php', {
		data: informationRequired, 
		text: danishCharsEncode(textDescription), 
		closable: true, 
		visible: true, 
		uid: 'gen_' + (Math.random() + '').substring(2), 
		for_sasstats: true
	}, function(data) {
		data = data.replace('<script language="JavaScript" type="text/javascript" src="/includes/jscript/lightuser.js"></script>', '');
		var displayBoxOffset = Math.max($(window).scrollTop() - container.offset().top + 160, 20);
		$(data).css({
			'margin-left': 'auto', 
			'margin-right': 'auto', 
			top: displayBoxOffset + 'px', 
			position: 'relative', 
			width: '500px', 
			left: 'auto', 
			display: 'none'
		}).appendTo(overlayDiv).fadeIn('normal', function() {
			$('.close-signup-button').click(function() {
				overlayDiv.remove();
			}).css({cursor: 'pointer'});			
		});
	});
}

function danishCharsEncode(string) {
	var charTranslation = {"æ": "&aelig;", "ø": "&oslash;", "å": "&aring;", "Æ": "&AElig;", "Ø": "&Oslash;", "Å": "&Aring;"};
	var out = string;
	jQuery.each(charTranslation, function(k, v) {		
		out = out.replace(k, v);
	});
	return out;
}