/** userpage **/

function showLvAjax(url, title, descr, w, h, ajaxparams) {
	Lightview.show({
	  href: url,
	  rel: 'ajax',
	  title: title,
	  caption: descr,
	  options: {
		 autosize: false,
		 topclose: false,
		 width: w + 10,
		 height: h + 20,
		 ajax: {
			 parameters: ajaxparams
		 }
	  }
	});
}


// toggle enabled distribution 
function toggleEnabled(site,el,force) {
	if (!force) {
		if (el.checked)
			value = 'y';
		else
			value = 'n';
	}
	else
		value = force;
	// save checked state
	var state = el.checked;
	function fail(el) {
		el.checked = !state; // restore
		new Effect.Highlight(Element.ancestors(el)[1], {
				startcolor:'#BB0000',
				beforeStart: function() {
					el.disabled = true;
				},
				afterFinish: function() {
					el.disabled = false;
				}
		});
	}
	function showFeedbackMessage(site,msg) {
		$(site+"_inlinemessage").update(msg);
	}
	function changeLock(set){
		if (set)
			el.disabled = true;
		else
			el.disabled = false;
	}
	url = base_url+'ajax/dist_accountinfo/update_enabled/'+site+'/'+value;
	new Ajax.Request(url, {
		method: 'post',
		onSuccess: function(transport) {
			var response = transport.responseText.evalJSON();
			if (response['result'] != 'success') {
				fail(el);
				showFeedbackMessage(response['site'],response['msg']);
			}
			else {
				new Effect.Highlight(Element.ancestors(el)[1], {
						startcolor:'#009900',
						beforeStart: function() {
							el.disabled = true;
						},
						afterFinish: function() {
							el.disabled = false;
						}
				});
				showFeedbackMessage(response['site'],response['msg']);
			}
		},
		onFailure: function(){ fail(el);}
	});
}

function testAccountInfo( site ) {
	var url = base_url+"ajax/distribution/testaccountinfo/"+site;
	spinAsyncReq(url,$(site+"_inlinemessage"));
	return false;
}

// remove accountinfo entry 
function removeDistEntry( site ) {
	// modal sure
	confirmed = false;
	modalboxsurejs("confirmed=true","Gegevens definitief verwijderen");
	var obj = {
		exec: function(ev) {
			if (!confirmed)
				return;
			// ajax remove
			url = base_url+'ajax/dist_accountinfo/remove_entry/'+site;
			new Ajax.Request(url, {
				method: 'post',
				onSuccess: function(transport) {
					var response = transport.responseText;
					if (response != 'success')
						modalboxalert("Er is een fout opgetreden","Gegevens konden niet worden verwijderd!");
					else {
						// reload page, strip anchor
						var anchor_index = location.href.indexOf('#');
						var url = location.href;
						if (anchor_index != -1) {
							url = location.href.substring(0, anchor_index);
						}
						location.href = url;
					}
				},
				onFailure: function(){ 
					modalboxalert("Er is een fout opgetreden","Gegevens konden niet worden verwijderd!"); 
				}
			});
			document.stopObserving("lightview:hidden", obj.execx);
		}
	};
	obj.execx = obj.exec.bindAsEventListener(obj);
	document.observe("lightview:hidden", obj.execx);
	return false;
}


/* channel page */

caps = {}; // global
getDistributionDrivers();

function getDistributionDrivers() {
	new Ajax.Request(base_url+'ajax/distribution/ajaxgetcapabilities', {
		method: 'POST',
		onSuccess: function(transport) {
			caps = transport.responseText.evalJSON();
		}
	});
}

function disabledSiteFeedback(site,user,el) {
	el.checked = false;
	var link = base_url + "users/profile/"+user+"/dist#"+site;
	modalboxalert("Waarschuwing","Deze site is niet ingeschakeld, klik <a href='"+link+"'>hier</a> om deze site in te schakelen");
}

function updateTextStatus() {
	var value = $('mytext').value;
	var slength = value.length;
	var hidden = {visibility:'hidden'};
	var visible = {visibility:'visible'};
	var hide = {display:'none'};
	var show = {display:'table-cell'};	// was: table-row..
	var showtext = false;
	for (driver in caps) {
		var driverch = $(driver+'_ch');
		if (driverch && driverch.checked) {
			if (caps[driver]['uses_text'])
				showtext = true;
			// msg
			if ((slength > caps[driver]['maxTextSize']) || (!caps[driver]['uses_text'] && slength > 0))
				$(driver+'_errormsg').setStyle(show);
			else
				$(driver+'_errormsg').setStyle(hide);
			// counter
			if ($(driver+'_counter')) {
				$(driver+'_counter').setStyle(visible);
				$(driver+'_counter_postfix').setStyle(visible);
				var count = caps[driver]['maxTextSize'] - slength;
				if (count > -1) {
					$(driver+'_counter').innerHTML = count;
					$(driver+'_counter').setStyle({color:'#333333'});
					$(driver+'_counter_postfix').setStyle({color:'#333333'});
				}
				else {
					$(driver+'_counter').innerHTML = 0;
					$(driver+'_counter').setStyle({color:'#BB0000'});
					$(driver+'_counter_postfix').setStyle({color:'#BB0000'});
				}
			}
		}
	}
	TextBoxDisplay(showtext);
	Lightview.updateViews(); // update lightview size
}

function updateDistBox() {
	// check if driver is enabled, if not, disable check and modalalert
	var showtext = false;
	var hidden = {visibility:'hidden'};
	var hide = {display:'none'};
	for (driver in caps) {
		var driverch = $(driver+'_ch');
		if (driverch) {
			if (driverch.checked) {
				if (caps[driver]['uses_text'])
					showtext = true;
				updateTextStatus();
			}
			else {
				$(driver+'_errormsg').setStyle(hide);
				if ($(driver+'_counter')) {
					$(driver+'_counter').setStyle(hidden);
					$(driver+'_counter_postfix').setStyle(hidden);
				}
			}
		}
	}
	TextBoxDisplay(showtext);
	Lightview.updateViews(); // update lightview size
}

function TextBoxDisplay(showtext) {
	if (showtext) {
		$('mytext').setStyle({display:'inline'});
		$('mytext_label').setStyle({display:'inline'});
	}
	else {
		$('mytext').setStyle({display:'none'});
		$('mytext_label').setStyle({display:'none'});
	}
	Lightview.updateViews(); // update lightview size
}
