// JQuery Plugins, selected by ONOK
// - Facebox
// - Cursormessage
// - Suggest
// - Constrain (form validatie)
// - Text invoeren at cursor in textarea
// - FieldSelection
// - Sortables

//*****************************************************************************************************************
// Facebox
//*****************************************************************************************************************
(function($){$.facebox=function(data,klass){$.facebox.loading()
if(data.ajax)fillFaceboxFromAjax(data.ajax)
else if(data.image)fillFaceboxFromImage(data.image)
else if(data.div)fillFaceboxFromHref(data.div)
else if($.isFunction(data))data.call($)
else $.facebox.reveal(data,klass)}
$.extend($.facebox,{settings:{opacity:0.5,overlay:true,loadingImage:'/images/loading.gif',closeImage:'/images/facebox/closelabel.gif',imageTypes:['png','jpg','jpeg','gif'],faceboxHtml:'\
    <div id="facebox" style="display:none;"> \
      <div class="popup"> \
        <table> \
          <tbody> \
            <tr> \
              <td class="tl"/><td class="b"/><td class="tr"/> \
            </tr> \
            <tr> \
              <td class="b"/> \
              <td class="body"> \
                <div class="content" id="faceboxcontent"> \
                </div> \
                <div class="footer"> \
                  <a href="#" class="close"> \
                    <img src="/images/facebox/closelabel.gif" title="close" class="close_image" /> \
                  </a> \
                </div> \
              </td> \
              <td class="b"/> \
            </tr> \
            <tr> \
              <td class="bl"/><td class="b"/><td class="br"/> \
            </tr> \
          </tbody> \
        </table> \
      </div> \
    </div>'},loading:function(){init()
if($('#facebox .loading').length==1)return true
showOverlay()
$('#facebox .content').empty()
$('#facebox .body').children().hide().end().append('<div class="loading"><img src="'+$.facebox.settings.loadingImage+'"/></div>')
$('#facebox').css({top:getPageScroll()[1]+(getPageHeight()/10),left:385.5}).show()
$(document).bind('keydown.facebox',function(e){if(e.keyCode==27)$.facebox.close()
return true})
$(document).trigger('loading.facebox')},reveal:function(data,klass){$(document).trigger('beforeReveal.facebox')
if(klass)$('#facebox .content').addClass(klass)
$('#facebox .content').append(data)
$('#facebox .loading').remove()
$('#facebox .body').children().fadeIn('normal')
$('#facebox').css('left',$(window).width()/2-($('#facebox table').width()/2))
$(document).trigger('reveal.facebox').trigger('afterReveal.facebox')},close:function(){$(document).trigger('close.facebox')
return false}})
$.fn.facebox=function(settings){init(settings)
function clickHandler(){$.facebox.loading(true)
var klass=this.rel.match(/facebox\[?\.(\w+)\]?/)
if(klass)klass=klass[1]
fillFaceboxFromHref(this.href,klass)
return false}
return this.click(clickHandler)}
function init(settings){if($.facebox.settings.inited)return true
else $.facebox.settings.inited=true
$(document).trigger('init.facebox')
makeCompatible()
var imageTypes=$.facebox.settings.imageTypes.join('|')
$.facebox.settings.imageTypesRegexp=new RegExp('\.'+imageTypes+'$','i')
if(settings)$.extend($.facebox.settings,settings)
$('body').append($.facebox.settings.faceboxHtml)
var preload=[new Image(),new Image()]
preload[0].src=$.facebox.settings.closeImage
preload[1].src=$.facebox.settings.loadingImage
$('#facebox').find('.b:first, .bl, .br, .tl, .tr').each(function(){preload.push(new Image())
preload.slice(-1).src=$(this).css('background-image').replace(/url\((.+)\)/,'$1')})
$('#facebox .close').click($.facebox.close)
$('#facebox .close_image').attr('src',$.facebox.settings.closeImage)}
function getPageScroll(){var xScroll,yScroll;if(self.pageYOffset){yScroll=self.pageYOffset;xScroll=self.pageXOffset;}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop;xScroll=document.documentElement.scrollLeft;}else if(document.body){yScroll=document.body.scrollTop;xScroll=document.body.scrollLeft;}
return new Array(xScroll,yScroll)}
function getPageHeight(){var windowHeight
if(self.innerHeight){windowHeight=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){windowHeight=document.documentElement.clientHeight;}else if(document.body){windowHeight=document.body.clientHeight;}
return windowHeight}
function makeCompatible(){var $s=$.facebox.settings
$s.loadingImage=$s.loading_image||$s.loadingImage
$s.closeImage=$s.close_image||$s.closeImage
$s.imageTypes=$s.image_types||$s.imageTypes
$s.faceboxHtml=$s.facebox_html||$s.faceboxHtml}
function fillFaceboxFromHref(href,klass){if(href.match(/#/)){var url=window.location.href.split('#')[0]
var target=href.replace(url,'')
$.facebox.reveal($(target).clone().show(),klass)}else if(href.match($.facebox.settings.imageTypesRegexp)){fillFaceboxFromImage(href,klass)}else{fillFaceboxFromAjax(href,klass)}}
function fillFaceboxFromImage(href,klass){var image=new Image()
image.onload=function(){$.facebox.reveal('<div class="image"><img src="'+image.src+'" /></div>',klass)}
image.src=href}
function fillFaceboxFromAjax(href,klass){$.get(href,function(data){$.facebox.reveal(data,klass)})}
function skipOverlay(){return $.facebox.settings.overlay==false||$.facebox.settings.opacity===null}
function showOverlay(){if(skipOverlay())return
if($('facebox_overlay').length==0)
$("body").append('<div id="facebox_overlay" class="facebox_hide"></div>')
$('#facebox_overlay').hide().addClass("facebox_overlayBG").css('opacity',$.facebox.settings.opacity).show()
return false}
function hideOverlay(){if(skipOverlay())return
$("#facebox_overlay").fadeOut(100)
return false}
$(document).bind('close.facebox',function(){$(document).unbind('keydown.facebox')
$('#facebox').fadeOut(function(){$('#facebox .content').removeClass().addClass('content')
hideOverlay()
$('#facebox .loading').remove()})})})(jQuery);


//*****************************************************************************************************************
// minibox
//*****************************************************************************************************************

function getPageScroll(){
	var xScroll,yScroll;
	if(self&&self.pageYOffset){
		yScroll=self.pageYOffset;
		xScroll=self.pageXOffset;
	}	else if(document.documentElement&&document.documentElement.scrollTop){
		yScroll=document.documentElement.scrollTop;
		xScroll=document.documentElement.scrollLeft;
	} else if(document.body){
		yScroll=document.body.scrollTop;
		xScroll=document.body.scrollLeft;
	}
	return new Array(xScroll,yScroll);
}

function minibox_showoverlay(){
	$("body").append('<div id="minibox_overlay"></div>');
	$('#minibox_overlay').css('opacity',0.5).show();
}

function minibox_show(vars){
	$("body").append('<div id="minibox"><table id="minibox_table"><tr><td id="minibox_content"></td></tr></table></div>');
	$.ajax({
		url: "/",
		data: vars,
		success: function(msg){
			$('#minibox_content').html(msg);
			$('#minibox').css({'top':getPageScroll()[1],'opacity':1}).show();
		}
	});
}
function minibox_close(){
	$('#minibox_overlay').remove();
	$('#minibox').remove();
}

function minibox(url){
	minibox_showoverlay();
	minibox_show(url);
}

//*****************************************************************************************************************
// Cursormessage
//*****************************************************************************************************************
if(jQuery){(function($){$.cursorMessageData={};$(window).ready(function(e){if($('#cursorMessageDiv').length==0){$('body').append('<div id="cursorMessageDiv">&nbsp;</div>');$('#cursorMessageDiv').hide();}
$('body').mousemove(function(e){$.cursorMessageData.mouseX=e.pageX;$.cursorMessageData.mouseY=e.pageY;if($.cursorMessageData.options!=undefined)$._showCursorMessage();});});$.extend({cursorMessage:function(message,options){if(options==undefined)options={};if(options.offsetX==undefined)options.offsetX=5;if(options.offsetY==undefined)options.offsetY=5;if(options.hideTimeout==undefined)options.hideTimeout=5000;var hideCursorMessage=function(){$('#cursorMessageDiv').html(message).fadeOut('slow');};$('#cursorMessageDiv').stop(1,1);$('#cursorMessageDiv').show().html(message);if(jQuery.cursorMessageData.hideTimoutId!=undefined)clearTimeout(jQuery.cursorMessageData.hideTimoutId);jQuery.cursorMessageData.hideTimoutId=setTimeout(hideCursorMessage,options.hideTimeout);jQuery.cursorMessageData.options=options;$._showCursorMessage();},_showCursorMessage:function(){$('#cursorMessageDiv').css({top:($.cursorMessageData.mouseY+$.cursorMessageData.options.offsetY)+'px',left:($.cursorMessageData.mouseX+$.cursorMessageData.options.offsetX)})}});})(jQuery);}


//*****************************************************************************************************************
// Suggest
//*****************************************************************************************************************
(function($){$.suggest=function(input,options){var $input=$(input).attr("autocomplete","off");var $results=$(document.createElement("ul"));var timeout=false;var prevLength=0;var cache=[];var cacheSize=0;var boxwidth=$(input).css("width");$results.addClass(options.resultsClass).appendTo('body');resetPosition();$(window).load(resetPosition).resize(resetPosition);$input.blur(function(){setTimeout(function(){$results.hide()},200);});try{$results.bgiframe();}catch(e){}
if($.browser.mozilla)
$input.keypress(processKey);else
$input.keydown(processKey);function resetPosition(){var offset=$input.offset();$results.css({top:(offset.top+input.offsetHeight)+'px',left:offset.left+'px'});}
function processKey(e){if((/27$|38$|40$/.test(e.keyCode)&&$results.is(':visible'))||(/^13$|^9$/.test(e.keyCode)&&getCurrentResult())){if(e.preventDefault)
e.preventDefault();if(e.stopPropagation)
e.stopPropagation();e.cancelBubble=true;e.returnValue=false;switch(e.keyCode){case 38:prevResult();break;case 40:nextResult();break;case 9:case 13:selectCurrentResult();break;case 27:$results.hide();break;}}else if($input.val().length!=prevLength){if(timeout)
clearTimeout(timeout);timeout=setTimeout(suggest,options.delay);prevLength=$input.val().length;}}
function suggest(){var q=$.trim($input.val());if(q.length>=options.minchars){cached=checkCache(q);if(cached){displayItems(cached['items']);}else{$.get(options.source,{q:q},function(txt){$results.hide();var items=parseTxt(txt,q);displayItems(items);addToCache(q,items,txt.length);});}}else{$results.hide();}}
function checkCache(q){for(var i=0;i<cache.length;i++)
if(cache[i]['q']==q){cache.unshift(cache.splice(i,1)[0]);return cache[0];}
return false;}
function addToCache(q,items,size){while(cache.length&&(cacheSize+size>options.maxCacheSize)){var cached=cache.pop();cacheSize-=cached['size'];}
cache.push({q:q,size:size,items:items});cacheSize+=size;}
function displayItems(items){if(!items)
return;if(!items.length){$results.hide();return;}
var html='';for(var i=0;i<items.length;i++)
html+='<li>'+items[i]+'</li>';$results.html(html).show();$results.css("width",boxwidth);$results.children('li').mouseover(function(){$results.children('li').removeClass(options.selectClass);$(this).addClass(options.selectClass);}).click(function(e){e.preventDefault();e.stopPropagation();selectCurrentResult();});}
function parseTxt(txt,q){var items=[];var tokens=txt.split(options.delimiter);for(var i=0;i<tokens.length;i++){var token=$.trim(tokens[i]);if(token){token=token.replace(new RegExp(q,'ig'),function(q){return'<span class="'+options.matchClass+'">'+q+'</span>'});items[items.length]=token;}}
return items;}
function getCurrentResult(){if(!$results.is(':visible'))
return false;var $currentResult=$results.children('li.'+options.selectClass);if(!$currentResult.length)
$currentResult=false;return $currentResult;}
function selectCurrentResult(){$currentResult=getCurrentResult();if($currentResult){$input.val($currentResult.text());$results.hide();if(options.onSelect)
options.onSelect.apply($input[0]);}}
function nextResult(){$currentResult=getCurrentResult();if($currentResult)
$currentResult.removeClass(options.selectClass).next().addClass(options.selectClass);else
$results.children('li:first-child').addClass(options.selectClass);}
function prevResult(){$currentResult=getCurrentResult();if($currentResult)
$currentResult.removeClass(options.selectClass).prev().addClass(options.selectClass);else
$results.children('li:last-child').addClass(options.selectClass);}}
$.fn.suggest=function(source,options){if(!source)
return;options=options||{};options.source=source;options.delay=options.delay||100;options.resultsClass=options.resultsClass||'ac_results';options.selectClass=options.selectClass||'ac_over';options.matchClass=options.matchClass||'ac_match';options.minchars=options.minchars||1;options.delimiter=options.delimiter||'\n';options.onSelect=options.onSelect||false;options.maxCacheSize=options.maxCacheSize||65536;this.each(function(){new $.suggest(this,options);});return this;};})(jQuery);



//*****************************************************************************************************************
// Constrain (form validatie)
//*****************************************************************************************************************
(function($){$.fn.constrain=function(opt){opt=$.extend(true,{},{limit:{},prohibit:{chars:"",regex:false},allow:{chars:"",regex:false}},opt);function isProhibitedByLimit(input,e){var prohibited=false;$.each(opt.limit,function(token,idx){var max=this;if(token.charCodeAt(0)==e.which){prohibited=max<0?false:max<$(input).val().split(token).length;return false;}});return prohibited;};function isConfigured(item){return item.chars.length>0||(item.regex&&item.regex.length>0);};function match(item,input,e){var arr=item.chars.split("");for(var i in arr){var token=arr[i];if(token.charCodeAt(0)==e.which){return true;}}
if(item.regex){var re=new RegExp(item.regex);if(re.test(String.fromCharCode(e.which))){return true;}}
return false;};function isProhibited(input,e){if(e.which==0||e.which==8||e.which==27){return false;}
var prohibit=isConfigured(opt.prohibit)?match(opt.prohibit,input,e):false;var allow=isConfigured(opt.allow)?match(opt.allow,input,e):true;var limited=isProhibitedByLimit(input,e);return prohibit||!allow||limited;};return this.each(function(){$(this).keypress(function(e){if(isProhibited(this,e)){e.preventDefault();}});});};$.fn.numeric=function(opt){opt=$.extend(true,{},{onblur:true,format:""},opt);var parts=opt.format.split(".");var precision=parts.length>1?parts[1].length:false;return this.each(function(){var allowRe="\\d";if(opt.format.indexOf(".")>-1){allowRe+="\\.";}
if(opt.format.indexOf(",")>-1){allowRe+=",";}
var constraintOptions={allow:{regex:"["+allowRe+"]"},limit:{".":1}};$(this).constrain(constraintOptions);if(precision){$(this).blur(function(e){var n=parseFloat($(this).val());if(!isNaN(n)){var val=$(this).val();$(this).val($.formatNumber(val,opt.format));}});if(!opt.onblur){var prec=new RegExp("\\d+\\.*\\d{0,"+precision+"}");$(this).keyup(function(e){if((e.which<48&&e.which>57)||(e.which<96&&e.which>105)){return;}
var val=$(this).val();$(this).val(val.match(prec));});}}});};})(jQuery);(function($){$.numericFormat=$.numericFormat||{};$.numericFormat.formats=$.numericFormat.formats||new Array();$.extend({formatNumber:function(num,format){function _numberFormat(num,format,context){function createNewFormat(format,formatName){var code="var "+formatName+" = function(num){\n";code+="num = num.replace(/,/,'');";var formats=format.split(";");switch(formats.length){case 1:code+=createTerminalFormat(format);break;case 2:code+="return (num < 0) ? _numberFormat(num,\""
+escape(formats[1])
+"\", 1) : _numberFormat(num,\""
+escape(formats[0])
+"\", 2);";break;case 3:code+="return (num < 0) ? _numberFormat(num,\""
+escape(formats[1])
+"\", 1) : ((num == 0) ? _numberFormat(num,\""
+escape(formats[2])
+"\", 2) : _numberFormat(num,\""
+escape(formats[0])
+"\", 3));";break;default:code+="throw 'Too many semicolons in format string';";break;}
return code+"};";};function createTerminalFormat(format){if(format.length>0&&format.search(/[0#?]/)==-1){return"return '"+escape(format)+"';\n";}
var code="var val = (context == null) ? new Number(num) : Math.abs(num);\n";var thousands=false;var lodp=format;var rodp="";var ldigits=0;var rdigits=0;var scidigits=0;var scishowsign=false;var sciletter="";m=format.match(/\..*(e)([+-]?)(0+)/i);if(m){sciletter=m[1];scishowsign=(m[2]=="+");scidigits=m[3].length;format=format.replace(/(e)([+-]?)(0+)/i,"");}
var m=format.match(/^([^.]*)\.(.*)$/);if(m){lodp=m[1].replace(/\./g,"");rodp=m[2].replace(/\./g,"");}
if(format.indexOf('%')>=0){code+="val *= 100;\n";}
m=lodp.match(/(,+)(?:$|[^0#?,])/);if(m){code+="val /= "+Math.pow(1000,m[1].length)+"\n;";}
if(lodp.search(/[0#?],[0#?]/)>=0){thousands=true;}
if((m)||thousands){lodp=lodp.replace(/,/g,"");}
m=lodp.match(/0[0#?]*/);if(m){ldigits=m[0].length;}
m=rodp.match(/[0#?]*/);if(m){rdigits=m[0].length;}
if(scidigits>0){code+="var sci = toScientific(num,val,"
+ldigits+", "+rdigits+", "+scidigits+", "+scishowsign+");\n"
+"var arr = [sci.l, sci.r];\n";}
else{if(format.indexOf('.')<0){code+="val = (val > 0) ? Math.ceil(val) : Math.floor(val);\n";}
code+="var arr = round(val,"+rdigits+").toFixed("+rdigits+").split('.');\n";code+="arr[0] = (val < 0 ? '-' : '') + leftPad((val < 0 ? arr[0].substring(1) : arr[0]), "
+ldigits+", '0');\n";}
if(thousands){code+="arr[0] = addSeparators(arr[0]);\n";}
code+="arr[0] = reverse(injectIntoFormat(reverse(arr[0]), '"+escape(reverse(lodp))+"', true));\n";if(rdigits>0){code+="arr[1] = injectIntoFormat(arr[1], '"+escape(rodp)+"', false);\n";}
if(scidigits>0){code+="arr[1] = arr[1].replace(/(\\d{"+rdigits+"})/, '$1"+sciletter+"' + sci.s);\n";}
return code+"return arr.join('.');\n";};function toScientific(num,val,ldigits,rdigits,scidigits,showsign){var result={l:"",r:"",s:""};var ex="";var before=Math.abs(val).toFixed(ldigits+rdigits+1).trim('0');var after=Math.round(num,new Number(before.replace(".","").replace(new RegExp("(\\d{"+(ldigits+rdigits)+"})(.*)"),"$1.$2"))).toFixed(0);if(after.length>=ldigits){after=after.substring(0,ldigits)+"."+after.substring(ldigits);}
else{after+='.';}
result.s=(before.indexOf(".")-before.search(/[1-9]/))-after.indexOf(".");if(result.s<0){result.s++;}
result.l=(val<0?'-':'')+leftPad(after.substring(0,after.indexOf(".")),ldigits,"0");result.r=after.substring(after.indexOf(".")+1);if(result.s<0){ex="-";}
else if(showsign){ex="+";}
result.s=ex+leftPad(Math.abs(result.s).toFixed(0),scidigits,"0");return result;};function reverse(str){var res="";for(var i=str.length;i>0;--i){res+=str.charAt(i-1);}
return res;};function escape(string){return string.replace(/('|\\)/g,"\\$1");};function leftPad(val,size,ch){var result=new String(val);if(ch==null){ch=" ";}
while(result.length<size){result=ch+result;}
return result;};function round(num,decimals){if(decimals>0){var m=num.toFixed(decimals+1).match(new RegExp("(-?\\d*)\.(\\d{"+decimals+"})(\\d)\\d*$"));if(m&&m.length){return new Number(m[1]+"."+leftPad(Math.round(m[2]+"."+m[3]),decimals,"0"));}}
return num;};function addSeparators(val){var s=reverse(val).replace(/(\d{3})/g,"$1,");return reverse(s).replace(/^(-)?,/,"$1");};function injectIntoFormat(val,format,stuffExtras){var i=0;var j=0;var result="";var revneg=val.charAt(val.length-1)=='-';if(revneg){val=val.substring(0,val.length-1);}
while(i<format.length&&j<val.length&&format.substring(i).search(/[0#?]/)>=0){if(format.charAt(i).match(/[0#?]/)){if(val.charAt(j)!='-'){result+=val.charAt(j);}
else{result+="0";}
j++;}
else{result+=format.charAt(i);}
++i;}
if(revneg&&j==val.length){result+='-';}
if(j<val.length){if(stuffExtras){result+=val.substring(j);}
if(revneg){result+='-';}}
if(i<format.length){result+=format.substring(i);}
return result.replace(/#/g,"").replace(/\?/g," ");};var formatName="numFormat"+$.numericFormat.formats.length++;eval(createNewFormat(format,formatName));return eval(formatName);};if(!$.numericFormat.formats[format]){$.numericFormat.formats[format]=_numberFormat(num,format);};return $.numericFormat.formats[format](num);}});})(jQuery);



//*****************************************************************************************************************
// Text invoeren at cursor in textarea
//*****************************************************************************************************************
$.fn.insertAtCaret=function(myValue){return this.each(function(){if(document.selection){this.focus();sel=document.selection.createRange();sel.text=myValue;this.focus();}
else if(this.selectionStart||this.selectionStart=='0'){var startPos=this.selectionStart;var endPos=this.selectionEnd;var scrollTop=this.scrollTop;this.value=this.value.substring(0,startPos)+myValue+this.value.substring(endPos,this.value.length);this.focus();this.selectionStart=startPos+myValue.length;this.selectionEnd=startPos+myValue.length;this.scrollTop=scrollTop;}else{this.value+=myValue;this.focus();}});};


//*****************************************************************************************************************
// FieldSelection
//*****************************************************************************************************************
(function(){var c={getSelection:function(){var e=this.jquery?this[0]:this;return(('selectionStart'in e&&function(){var l=e.selectionEnd-e.selectionStart;return{start:e.selectionStart,end:e.selectionEnd,length:l,text:e.value.substr(e.selectionStart,l)}})||(document.selection&&function(){e.focus();var r=document.selection.createRange();if(r==null){return{start:0,end:e.value.length,length:0}}var a=e.createTextRange();var b=a.duplicate();a.moveToBookmark(r.getBookmark());b.setEndPoint('EndToStart',a);return{start:b.text.length,end:b.text.length+r.text.length,length:r.text.length,text:r.text}})||function(){return{start:0,end:e.value.length,length:0}})()},replaceSelection:function(){var e=this.jquery?this[0]:this;var a=arguments[0]||'';return(('selectionStart'in e&&function(){e.value=e.value.substr(0,e.selectionStart)+a+e.value.substr(e.selectionEnd,e.value.length);return this})||(document.selection&&function(){e.focus();document.selection.createRange().text=a;return this})||function(){e.value+=a;return this})()}};jQuery.each(c,function(i){jQuery.fn[i]=this})})();


//*****************************************************************************************************************
// Sortables
//*****************************************************************************************************************
(function($){$.fn.dragsort=function(options){var opts=$.extend({},$.fn.dragsort.defaults,options);var draggedItem=null,placeHolderItem=null;var positions,offset,offsetLimit;var container=this;$(this).find(opts.dragSelector).css("cursor","pointer");$(this).find(opts.dragSelector).mousedown(function(e){if(draggedItem==null&&e.button!=2){$(this).css("cursor","move");draggedItem=$(this).is("li")?$(this):$(this).parents("li");offset=draggedItem.offset();offset.top=e.pageY-offset.top;offset.left=e.pageX-offset.left;var containerHeight=$(container).outerHeight()==0?Math.round($(container).find("li").size()*draggedItem.outerWidth()/$(container).outerWidth())*draggedItem.outerHeight():$(container).outerHeight();offsetLimit=$(container).offset();offsetLimit.right=offsetLimit.left+$(container).outerWidth()-draggedItem.outerWidth();offsetLimit.bottom=offsetLimit.top+containerHeight-draggedItem.outerHeight();placeHolderItem=draggedItem.clone().html("&nbsp;").attr("placeHolder",true);placeHolderItem.height(draggedItem.height());draggedItem.after(placeHolderItem);draggedItem.css({position:"absolute",opacity:0.8});buildPositionTable();setPos(e.pageX,e.pageY);$(document).bind("selectstart",stopBubble);$(document).bind("mousemove",swapItems);$(this).bind("mouseup",dropItem);}
return false;});function setPos(x,y){var top=Math.max(y-offset.top,offsetLimit.top);var left=Math.max(x-offset.left,offsetLimit.left);top=Math.min(top,offsetLimit.bottom);left=Math.min(left,offsetLimit.right);draggedItem.css({top:top,left:left});};function buildPositionTable(){var elm=draggedItem.get(0);positions=new Array();$(container).find("li").each(function(i,el){if(el!=elm)positions.push({elm:el});});for(var i=0;i<positions.length;i++){var pos=$(positions[i].elm).offset();positions[i].left=pos.left;positions[i].top=pos.top;positions[i].right=pos.left+$(positions[i].elm).width();positions[i].bottom=pos.top+$(positions[i].elm).height();}}
var dropItem=function(e){if(draggedItem==null)
return;$(this).css("cursor","pointer");placeHolderItem.before(draggedItem);draggedItem.css({position:"",top:"",left:"",opacity:1});draggedItem=null;placeHolderItem.remove();opts.dragEnd.apply();$(document).unbind("selectstart",stopBubble);$(document).unbind("mousemove",swapItems);return false;}
var stopBubble=function(){return false;}
var swapItems=function(e){setPos(e.pageX,e.pageY);var elm=null,ei,pi;for(var i=0;i<positions.length;i++){if(positions[i].left<e.pageX&&positions[i].right>e.pageX&&positions[i].top<e.pageY&&positions[i].bottom>e.pageY){elm=positions[i].elm;ei=i;}
if($(positions[i].elm).attr("placeHolder"))
pi=i;}
if(elm==null||ei==pi)
return false;if(ei>pi)
$(elm).after(placeHolderItem);else
$(elm).before(placeHolderItem);buildPositionTable();return false;}};$.fn.dragsort.defaults={dragSelector:"li",dragEnd:function(){}};})(jQuery);

//*****************************************************************************************************************
// videoplayer
//*****************************************************************************************************************
if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\"";_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}var _1c=this.getVariablePairs().join("&");if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\">";_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";var _1d=this.getParams();for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.major<fv.major){return false;}if(this.major>fv.major){return true;}if(this.minor<fv.minor){return false;}if(this.minor>fv.minor){return true;}if(this.rev<fv.rev){return false;}return true;};deconcept.util={getRequestParameter:function(_2b){var q=document.location.search||document.location.hash;if(_2b==null){return q;}if(q){var _2d=q.substring(1).split("&");for(var i=0;i<_2d.length;i++){if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){return _2d[i].substring((_2d[i].indexOf("=")+1));}}}return "";}};deconcept.SWFObjectUtil.cleanupSWFs=function(){var _2f=document.getElementsByTagName("OBJECT");for(var i=_2f.length-1;i>=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;



//*****************************************************************************************************************
// Overige functies
//*****************************************************************************************************************
jQuery(document).ready(function($) {
  $('a.box').facebox();

	$(".link").hover(function(){
		$(this).addClass("link_hover");
	},function(){
		$(this).removeClass("link_hover");
	});

})

function check(naam){
	imgid=$('#check_'+naam);
	inputid=$('#'+naam);
	if (imgid.attr("class")=='checkbox_checked'){
		imgid.attr("class",'checkbox');
		imgid.attr("src",'/images/checkbox.gif');
		inputid.val(0);
	}	else {
		imgid.attr("class",'checkbox_checked');
		imgid.attr("src",'/images/checkbox_checked.gif');
		inputid.val(1);
	}
}

function toggledisplay(el){
	if ($('#'+el).css("display")=="block")
		$('#'+el).fadeOut("200");
	else
		$('#'+el).fadeIn("200");
}

function admindelete(table,id){
	var item=$('#row'+id);
	$.ajax({
		url: "/",
		data: "page=ajax_functions&action=ADMINDELETE&table="+table+"&id="+id,
		success: function(msg){
			item.fadeOut("200");
		}
	});
}
function insert2(sBefore,sAfter){
	$("#text").insertAtCaret(sBefore+$("#text").getSelection().text+sAfter);
}

function insert(s){
	$("#text").insertAtCaret(s);
}

function ubb_insertimage(s){
	if (s!=""){
		insert('[img]'+s+'[/img]');
	}
	$(document).trigger('close.facebox');
}

function ubb_inserturl(url,text){
	if (url!="http://" && url!=""){
		if (text=="")
			insert('[url]'+url+'[/url]');
		else
			insert('[url='+url+']'+text+'[/url]');
	}
	$(document).trigger('close.facebox');
}

function ubb_insertvideo(s){
	$.ajax({
		url: "/",
		data: "page=ajax_functions&action=UBBMOVIE&str="+s,
		success: function(msg){
			insert(msg);
			$(document).trigger('close.facebox');
		}
	});
}

var Flash = new Object();
Flash.Tube = function (id) {
	document.write('<object width="560" height="340"><param name="movie" value="http://www.youtube-nocookie.com/v/'+id+'&hl=nl&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/'+id+'&hl=nl&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object>');
}
Flash.Liveleak = function (id) {
	document.write('<object type="application/x-shockwave-flash" width="450" height="370" wmode="transparent" data="http://www.liveleak.com/player.swf?autostart=false&token='+id+'"><param name="movie" value="http://www.liveleak.com/player.swf?autostart=false&token='+id+'"><param name="wmode" value="transparent"><param name="quality" value="high"></object>');
}
Flash.Onetwovideo= function (id) {
	document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="420" height="339"><param name="movie" value="http://www.123video.nl/123video_share.swf?mediaSrc='+id+'" /><param name="quality" value="high" /><embed src="http://www.123video.nl/123video_share.swf?mediaSrc='+id+'" quality="high" width="420" height="339" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>');
}
Flash.Metacafe= function (id) {
	document.write('<embed src="http://www.metacafe.com/fplayer/'+id+'" width="400" height="345" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"> </embed>');
}
Flash.Video= function (filename) {
	document.write('<div id="videoplayer"><a href="http://www.macromedia.com/go/getflashplayer">Download Flash Player</a> om deze video te bekijken.</div>');
	var player = null; 
	var s1 = new SWFObject("/flash/player.swf","theplayer","640","380","9","#000000");
	s1.addParam("allowfullscreen","true");
	s1.addParam("allowscriptaccess","always");
	s1.addParam("flashvars","file=/videos/"+filename+"&backcolor=#004400&frontcolor=#ffffff");
	s1.write("videoplayer");
}

function formatseconds(seconds){
	if (seconds>0){
		var days=Math.floor(seconds/86400);
		var timeleft=days>0 ? seconds-(days*86400) : seconds;
		var hours=Math.floor(timeleft/3600);
		timeleft=hours>0 ? timeleft-(hours*3600) : timeleft;
		var minutes=Math.floor(timeleft/60);
		timeleft=minutes>0 ? timeleft-(minutes*60) : timeleft;
		return (days>0 ? "<b>"+days+"</b> dagen, " : "")+"<b>"+hours+"</b> uur, <b>"+minutes+"</b> minuten en <b>"+timeleft+" </b>seconden";
	} else {
		return "<b>0</b>seconden";
	}
}
