var loading		= '<img class="loading" src="/img/style-2.0/gen/spinner-s.gif" />';
var loadingDark	= '<img class="loading" src="/img/style-2.0/gen/spinner-black-xs.gif" />';
var timeout;

$(document).ready(function(){
	// automatically open external links open in new window/tab
	$("a[rel='external']").attr('target','_blank');
	// crumb back
	$('#crumb_history').click(function(){
		history.back();
		// history.go(-1) == one page back
		return false;
	});
	// crumb forward
	$('#crumb_back').click(function(){
		history.forward();
		return false;
	});
	// check JS
	//$('.nojs').remove();
	// direct button click feedback
	$('li#store_link a, li#support_link a, li#nieuws_link a, li#account_link a:not([class=thickbox])').click(function(){
		$('#navi a').removeClass('current');
		$(this).addClass('current');
	});
	
	$('tr.onhover, ul.onhover li').hover(function(){
		$(this).addClass('hover');
	},function(){
		$(this).removeClass('hover');
	});
	$('.readonly').live('click',function(){
		return false;
	});
});
	
$.fn.popup = function(options) {
	options	= $.extend({
				title:'Title',
				content: '',
				footerContent:'',
				arrow:'n-w',
				action:'click',
				position:'',
				type:'',
				value1:'',
				value2:'',
				value3:''
			}, options||{});

	return this.click(function(){		
		if (options.content == '') { options.content = '<div style="text-align:center; margin-bottom:8px;">'+loading+'</div>'; }
		var offset			= $(this).offset();
		var elementHeight 	= $(this).outerHeight();
		var left			= offset.left;
		var top				= offset.top + elementHeight + 5;		
		
		$('#popup').remove();
		
		var popup	= '<div id="popup" style="top:'+top+'px;left:'+left+'px;">';
		popup		+= '<div class="popup-wrapper">';
		popup		+= 		'<h2 class="popup-title">'+options.title+'</h2>';
		popup		+= 		'<div class="popup-sep"></div>';
		popup		+= 		'<div class="popup-content"><p>'+options.content+'</p></div>';
		if (options.footerContent != '') {
			popup	+=		 '<div class="popup-footer">';
			popup	+= 			'<p>'+options.footerContent+'</p>';
			popup	+= 		'</div>';
		}
		popup		+= 	'</div>	';
		popup		+= 	'<div class="popup-close"><a href="#">close</a></div>';
		popup		+= 	'<div class="popup-arrow-'+options.arrow+'"></div>';
		popup		+= '</div>';
		
		// get ajax content
		if (options.type != '') {
			$.post('/ajax/dialog.php',{ type:options.type, value1:options.value1, value2:options.value2, value3:options.value3 },function(cb){
				$('.popup-content').html(cb);
			});
		}
		
		$('#footerPlaceholder').after(popup);
			$('.popup-close').live('click',function(){
			$('#popup').remove(); return false;
		});
		
		return false;
	});
}	

$.fn.exists = function(){return this.length>0;}

$.fn.readonly = function(options) {
	options		= $.extend({
					readonly: 1,
					type: 'input',
					removeclass:'green',
					addclass: 'black',
					elementvalue: ''
				}, options||{});
	thisElement	= this;	
	originalVal	= thisElement.val();
	if (options.elementvalue == '') {
		var displayVal 	= originalVal;
	} else {
		var displayVal	= options.elementvalue;
	}

	if (options.readonly == 1) {		
		// input
		if (options.type == 'input') {
			thisElement.attr('readonly', 'readonly').addClass('readonly').addClass(options.addclass).removeClass(options.removeclass).val(displayVal);
		}
		// textarea
		if (options.type == 'textarea') {
			thisElement.attr('readonly', 'readonly').addClass('readonly');
		}
		// anchor
		if (options.type == 'a') {
			thisElement.addClass('readonly '+options.addclass).removeClass(options.removeclass).html(displayVal);
		}
	} else { // remove readonly
		// input
		if (options.type == 'input') {
			thisElement.attr('readonly', '').removeClass('readonly').addClass(options.addclass).removeClass(options.removeclass).val(valueElement);
		}
		// textarea
		if (options.type == 'textarea') {
			thisElement.attr('readonly', '').addClass(options.addclass).removeClass('readonly '+options.removeclass).html(displayVal);;
		}
		// anchor
		if (options.type == 'a') {
			thisElement.removeClass('readonly '+options.removeclass).addClass(options.addclass).html(displayVal);
		}
	}
}


$.fn.setOverlay = function(options) {
	// Extend options
	options = $.extend({
					status: 0
				}, options||{});
				
	// Function	
	// Turn on	
	if (options.status == 1) {
		var documentHeight 	= $(document).height();
		var documentWidth	= $(document).width();
		var loadingHeight 	= $(window).height() / 3;
		var loadingWidth 	= $(window).width() / 2;
		$('#screenOverlay').addClass('ui-widget-overlay').css( {'width': documentWidth + 'px', 'height': documentHeight + 'px', 'z-index':'1001'} );
		//$('#screenOverlay').html('<div style="margin: '+ loadingHeight +'px '+ loadingWidth +'px;"><img src="/img/gen/spinner-dark.gif" /></div>');
	}
	// Turn off
	if (options.status == 0) {
		$('#screenOverlay').removeClass('ui-widget-overlay').attr('style','');
		$('#screenOverlay').text('');
	}
}

$.fn.inputDesc = function(options) {
	// Extend options
	options = $.extend({
				description: 'change this description'
			}, options||{});
	// Assign this to var
	var thisInput		= this;
	// Assign default value to input field
	thisInput.val(options.description);
	// Check focus and blur
	thisInput.focus(function(){
		//thisInput.css('color','#333333');
		var inputValue = thisInput.val();
		if (inputValue == options.description) { // Value is same as default value so empty the value
			thisInput.val('');
		}
	});
	thisInput.blur(function(){
		//thisInput.css('color','#afafaf');
		var inputValue = thisInput.val();
		if (!inputValue) { // If no value is given, set the default value again
			thisInput.val(options.description);
		}
	});
}

$.fn.globalMessage = function(options) {
	// extend options
	options = $.extend({
					color: '',
					message: '',
					persistenceTime: 10000, // 0 is persistent
					speeddown: 500,
					speedup: 500,
					textColor: '#000000',
					transparency: '90',
					closebutton: '#globalMessage-close'
				}, options||{});
	// function
	var thisWrap		= this;
	
	return this.each(function(){
		thisWrap.slideDown(options.speeddown); // show message
		// set main color
		if (options.color) {
			thisWrap.addClass(options.color);
		}
		// set timer
		if (options.persistenceTime > 0) { // hide message
			cancelTimeout();
			timeout = setTimeout(function(){
							thisWrap.slideUp(options.speedup);
						}, options.persistenceTime);
			$('#globalMessage').mouseover(function(){
				clearTimeout(timeoutTimer);
			}).mouseout(function(){
				timeout = setTimeout(function(){
							thisWrap.slideUp(options.speedup);
						}, options.persistenceTime);
			});
		}
		// set text color
		thisWrap.css( {'color':options.textColor,'opacity':'.'+options.transparency,filter:'Alpha(Opacity='+options.transparency+')' });
		// add close function
		thisWrap.html('<div id="globalMessage-close" class="hand"></div>' + options.message); // inject message
		$('#globalMessage-close').click(function(){
			thisWrap.slideUp(options.speedup);
		});
	});
}

function cancelTimeout() {
	clearTimeout(timeout);
}

function getSearchResults(inputString) {
	var searchField	 	= $('#global-searchresults');
	// Check string length and perform AJAX request
	if (inputString.length == 0) {
		$('#globalSearch').hide(); // Fade search results if string is empty
	} else {
		cancelTimeout();
		var timeout = $.post('/ajax/livesearch.php', {queryString:inputString}, function(data) { // perform ajax call
			//$('#globalSearch').show(); // Display results
			$('#global-searchresults').html(data); // Fetch results
			$('#search_form div.loadingElement').hide();
		});
			
	}
}

function scrollAnchor() {
	$('a[href*=#]:not([href=#])').click(function() {
		if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')
		&& location.hostname == this.hostname) {
			var $target = $(this.hash);
			$target = $target.length && $target
			|| $('[name=' + this.hash.slice(1) +']');
			if ($target.length) {
				var targetOffset = $target.offset().top;
				$('html,body')
				.animate({scrollTop: targetOffset}, 1000);
				return false;
			}
		}
	});
}

function embedLogin() {
	var fields 			= $('form.embedLogin').serialize();
	var remember		= fields.indexOf('rememberLogin');
	var thisButton 		= $(':submit', this).attr('disabled', 'enabled');
	var	passwordLogin	= $('input[name=passwordLogin]').val();
	var	emailLogin		= $('input[name=emailLogin]').val();
	if (remember != -1) {
		var	rememberLogin	= 1;
	} else {
		var	rememberLogin	= '';
	}
	$('.embedLoginFeedback').remove();

	/* Check if field is empty */
	if (!passwordLogin || !emailLogin) {
		alert('Fields were left empty.');
		$(thisButton).attr('disabled', '');
		$('.temploading').remove();
		return false;
	}

	/* Perform ajax login */
	$.post('/ajax/post.php', { type:12143, value1:passwordLogin, value2:emailLogin, value3:rememberLogin } , function(cb) {
		$(thisButton).attr('disabled', '');
		cbsplit		= cb.split('::');
		var code	= parseInt(cbsplit[0]);
		var msg		= cbsplit[1]; 
		//console.log('cb' +cb + 'code' +code + 'msg' + msg);
		switch (code) {
			case 501:
				$('#embedLogin').remove();
				$('#afterLogin').fadeIn(1500);
				$('.loading').after(msg);
				break;
			case 101:
				$('.loading').after(msg);
				break;
		}
		$('.loading').remove();
		return false;
	});
} 

function writeCookie(name, value, days) {
	// By default, there is no expiration so the cookie is temporary
	var expires = "";
	// If days is specified
	if (days) {
		var date 	= new Date();
		date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
		expires		= "; expires=" + date.toGMTString();
	}
	// Set the cookie to the name, value, and expiration date
	document.cookie	= name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
	// Find cookie and return value
	var searchName 	= name + "=";
	var cookies 	= document.cookie.split(';');
	for(var i=0; i < cookies.length; i++) {
		var c		= cookies[i];
		while ( c.charAt(0) == ' ')
			c = c.substring(1, c.length);
		if (c.indexOf(searchName) == 0)
			return c.substring(searchName.length, c.length);
	}
	return null;
}

function eraseCookie(name) {
	writeCookie(name, "", -1);
}


function formLabel() {
	// catch every input field with label
	$("label[title]").each(function(){
		$(this).append("<div class=\"infopop\">");	
		titletext = $(this).attr("title");
		$(this).removeAttr("title");
		$(".infopop",this).css({opacity:0}).html(titletext);
		$("input",this).focus(function(){
			// Mouseover
			doFocus(this);
		}).blur(function(){
			// MouseOut
			doBlur(this);
		});
	});			
}

function number_format( number, decimals, dec_point, thousands_sep ) {
    var n = number, prec = decimals;
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    var sep = (typeof thousands_sep == "undefined") ? ',' : thousands_sep;
    var dec = (typeof dec_point == "undefined") ? '.' : dec_point;
 
    var s = (prec > 0) ? n.toFixed(prec) : Math.round(n).toFixed(prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;
 
    var abs = Math.abs(n).toFixed(prec);
    var _, i;
 
    if (abs >= 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;
 
        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
 
        s = _.join(dec);
    } else {
        s = s.replace('.', dec);
    }
 
    return s;
}

function nl2br (str, is_xhtml) {
    var breakTag = '';
    breakTag = '<br />';
    if (typeof is_xhtml != 'undefined' && !is_xhtml) {
        breakTag = '<br>';
    }
    return (str + '').replace(/([^>]?)\n/g, '$1'+ breakTag +'\n');
}


/*Lazy load plugin */
(function($){$.fn.lazyload=function(options){var settings={threshold:0,failurelimit:0,event:"scroll",effect:"show",container:window};if(options){$.extend(settings,options);}
var elements=this;if("scroll"==settings.event){$(settings.container).bind("scroll",function(event){var counter=0;elements.each(function(){if($.abovethetop(this,settings)||$.leftofbegin(this,settings)){}else if(!$.belowthefold(this,settings)&&!$.rightoffold(this,settings)){$(this).trigger("appear");}else{if(counter++>settings.failurelimit){return false;}}});var temp=$.grep(elements,function(element){return!element.loaded;});elements=$(temp);});}
this.each(function(){var self=this;if(undefined==$(self).attr("original")){$(self).attr("original",$(self).attr("src"));}
if("scroll"!=settings.event||undefined==$(self).attr("src")||settings.placeholder==$(self).attr("src")||($.abovethetop(self,settings)||$.leftofbegin(self,settings)||$.belowthefold(self,settings)||$.rightoffold(self,settings))){if(settings.placeholder){$(self).attr("src",settings.placeholder);}else{$(self).removeAttr("src");}
self.loaded=false;}else{self.loaded=true;}
$(self).one("appear",function(){if(!this.loaded){$("<img />").bind("load",function(){$(self).hide().attr("src",$(self).attr("original"))
[settings.effect](settings.effectspeed);self.loaded=true;}).attr("src",$(self).attr("original"));};});if("scroll"!=settings.event){$(self).bind(settings.event,function(event){if(!self.loaded){$(self).trigger("appear");}});}});$(settings.container).trigger(settings.event);return this;};$.belowthefold=function(element,settings){if(settings.container===undefined||settings.container===window){var fold=$(window).height()+$(window).scrollTop();}else{var fold=$(settings.container).offset().top+$(settings.container).height();}
return fold<=$(element).offset().top-settings.threshold;};$.rightoffold=function(element,settings){if(settings.container===undefined||settings.container===window){var fold=$(window).width()+$(window).scrollLeft();}else{var fold=$(settings.container).offset().left+$(settings.container).width();}
return fold<=$(element).offset().left-settings.threshold;};$.abovethetop=function(element,settings){if(settings.container===undefined||settings.container===window){var fold=$(window).scrollTop();}else{var fold=$(settings.container).offset().top;}
return fold>=$(element).offset().top+settings.threshold+$(element).height();};$.leftofbegin=function(element,settings){if(settings.container===undefined||settings.container===window){var fold=$(window).scrollLeft();}else{var fold=$(settings.container).offset().left;}
return fold>=$(element).offset().left+settings.threshold+$(element).width();};$.extend($.expr[':'],{"below-the-fold":"$.belowthefold(a, {threshold : 0, container: window})","above-the-fold":"!$.belowthefold(a, {threshold : 0, container: window})","right-of-fold":"$.rightoffold(a, {threshold : 0, container: window})","left-of-fold":"!$.rightoffold(a, {threshold : 0, container: window})"});})(jQuery);

/*
* TipTip
* Copyright 2010 Drew Wilson
* www.drewwilson.com
* code.drewwilson.com/entry/tiptip-jquery-plugin
*
* Version 1.3   -   Updated: Mar. 23, 2010
*/
(function($){$.fn.poptip=function(options){var defaults={activation:"hover",keepAlive:false,maxWidth:"200px",width:'auto',edgeOffset:3,defaultPosition:"bottom",delay:400,fadeIn:200,fadeOut:200,attribute:"title",content:false,enter:function(){},exit:function(){}};var opts=$.extend(defaults,options);if($("#tiptip_holder").length<=0){var tiptip_holder=$('<div id="tiptip_holder" style="max-width:'+opts.maxWidth+';"></div>');var tiptip_content=$('<div id="tiptip_content"></div>');var tiptip_arrow=$('<div id="tiptip_arrow"></div>');$("body").append(tiptip_holder.html(tiptip_content).prepend(tiptip_arrow.html('<div id="tiptip_arrow_inner"></div>')));}else{var tiptip_holder=$("#tiptip_holder");var tiptip_content=$("#tiptip_content");var tiptip_arrow=$("#tiptip_arrow");}
return this.each(function(){var org_elem=$(this);if(opts.content){var org_title=opts.content;}else{var org_title=org_elem.attr(opts.attribute);}
if(org_title!=""){if(!opts.content){org_elem.removeAttr(opts.attribute);}
var timeout=false;if(opts.activation=="hover"){org_elem.hover(function(){active_tiptip();},function(){if(!opts.keepAlive){deactive_tiptip();}});if(opts.keepAlive){tiptip_holder.hover(function(){},function(){deactive_tiptip();});}}else if(opts.activation=="focus"){org_elem.focus(function(){active_tiptip();}).blur(function(){deactive_tiptip();});}else if(opts.activation=="click"){org_elem.click(function(){active_tiptip();return false;}).hover(function(){},function(){if(!opts.keepAlive){deactive_tiptip();}});if(opts.keepAlive){tiptip_holder.hover(function(){},function(){deactive_tiptip();});}}
function active_tiptip(){opts.enter.call(this);tiptip_content.html(org_title);tiptip_holder.hide().removeAttr("class").css("margin","0");tiptip_arrow.removeAttr("style");$('#tiptip_holder').css({'maxWidth':opts.maxWidth});var top=parseInt(org_elem.offset()['top']);var left=parseInt(org_elem.offset()['left']);var org_width=parseInt(org_elem.outerWidth());var org_height=parseInt(org_elem.outerHeight());var tip_w=tiptip_holder.outerWidth();var tip_h=tiptip_holder.outerHeight();var w_compare=Math.round((org_width-tip_w)/2);var h_compare=Math.round((org_height-tip_h)/2);var marg_left=Math.round(left+w_compare);var marg_top=Math.round(top+org_height+opts.edgeOffset);var t_class="";var arrow_top="";var arrow_left=Math.round(tip_w-12)/2;if(opts.defaultPosition=="bottom"){t_class="_bottom";}else if(opts.defaultPosition=="top"){t_class="_top";}else if(opts.defaultPosition=="left"){t_class="_left";}else if(opts.defaultPosition=="right"){t_class="_right";}
var right_compare=(w_compare+left)<parseInt($(window).scrollLeft());var left_compare=(tip_w+left)>parseInt($(window).width());if((right_compare&&w_compare<0)||(t_class=="_right"&&!left_compare)||(t_class=="_left"&&left<(tip_w+opts.edgeOffset+5))){t_class="_right";arrow_top=Math.round(tip_h-13)/2;arrow_left=-12;marg_left=Math.round(left+org_width+opts.edgeOffset);marg_top=Math.round(top+h_compare);}else if((left_compare&&w_compare<0)||(t_class=="_left"&&!right_compare)){t_class="_left";arrow_top=Math.round(tip_h-13)/2;arrow_left=Math.round(tip_w);marg_left=Math.round(left-(tip_w+opts.edgeOffset+5));marg_top=Math.round(top+h_compare);}
var top_compare=(top+org_height+opts.edgeOffset+tip_h+8)>parseInt($(window).height()+$(window).scrollTop());var bottom_compare=((top+org_height)-(opts.edgeOffset+tip_h+8))<0;if(top_compare||(t_class=="_bottom"&&top_compare)||(t_class=="_top"&&!bottom_compare)){if(t_class=="_top"||t_class=="_bottom"){t_class="_top";}else{t_class=t_class+"_top";}
arrow_top=tip_h;marg_top=Math.round(top-(tip_h+5+opts.edgeOffset));}else if(bottom_compare|(t_class=="_top"&&bottom_compare)||(t_class=="_bottom"&&!top_compare)){if(t_class=="_top"||t_class=="_bottom"){t_class="_bottom";}else{t_class=t_class+"_bottom";}
arrow_top=-12;marg_top=Math.round(top+org_height+opts.edgeOffset);}
if(t_class=="_right_top"||t_class=="_left_top"){marg_top=marg_top+5;}else if(t_class=="_right_bottom"||t_class=="_left_bottom"){marg_top=marg_top-5;}
if(t_class=="_left_top"||t_class=="_left_bottom"){marg_left=marg_left+5;}
tiptip_arrow.css({"margin-left":arrow_left+"px","margin-top":arrow_top+"px"});tiptip_holder.css({"margin-left":marg_left+"px","margin-top":marg_top+"px"}).attr("class","tip"+t_class);if(timeout){clearTimeout(timeout);}
timeout=setTimeout(function(){tiptip_holder.stop(true,true).fadeIn(opts.fadeIn);},opts.delay);}
function deactive_tiptip(){opts.exit.call(this);if(timeout){clearTimeout(timeout);}
tiptip_holder.fadeOut(opts.fadeOut);}}});}})(jQuery);

// AJAXFILEUPLOAD
(function(){var d=document,w=window;function get(element){if(typeof element=="string")
element=d.getElementById(element);return element;}
function addEvent(el,type,fn){if(w.addEventListener){el.addEventListener(type,fn,false);}else if(w.attachEvent){var f=function(){fn.call(el,w.event);};el.attachEvent('on'+type,f)}}
var toElement=function(){var div=d.createElement('div');return function(html){div.innerHTML=html;var el=div.childNodes[0];div.removeChild(el);return el;}}();function hasClass(ele,cls){return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));}
function addClass(ele,cls){if(!hasClass(ele,cls))ele.className+=" "+cls;}
function removeClass(ele,cls){var reg=new RegExp('(\\s|^)'+cls+'(\\s|$)');ele.className=ele.className.replace(reg,' ');}
if(document.documentElement["getBoundingClientRect"]){var getOffset=function(el){var box=el.getBoundingClientRect(),doc=el.ownerDocument,body=doc.body,docElem=doc.documentElement,clientTop=docElem.clientTop||body.clientTop||0,clientLeft=docElem.clientLeft||body.clientLeft||0,zoom=1;if(body.getBoundingClientRect){var bound=body.getBoundingClientRect();zoom=(bound.right-bound.left)/body.clientWidth;}
if(zoom>1){clientTop=0;clientLeft=0;}
var top=box.top/zoom+(window.pageYOffset||docElem&&docElem.scrollTop/zoom||body.scrollTop/zoom)-clientTop,left=box.left/zoom+(window.pageXOffset||docElem&&docElem.scrollLeft/zoom||body.scrollLeft/zoom)-clientLeft;return{top:top,left:left};}}else{var getOffset=function(el){if(w.jQuery){return jQuery(el).offset();}
var top=0,left=0;do{top+=el.offsetTop||0;left+=el.offsetLeft||0;}
while(el=el.offsetParent);return{left:left,top:top};}}
function getBox(el){var left,right,top,bottom;var offset=getOffset(el);left=offset.left;top=offset.top;right=left+el.offsetWidth;bottom=top+el.offsetHeight;return{left:left,right:right,top:top,bottom:bottom};}
function getMouseCoords(e){if(!e.pageX&&e.clientX){var zoom=1;var body=document.body;if(body.getBoundingClientRect){var bound=body.getBoundingClientRect();zoom=(bound.right-bound.left)/body.clientWidth;}
return{x:e.clientX/zoom+d.body.scrollLeft+d.documentElement.scrollLeft,y:e.clientY/zoom+d.body.scrollTop+d.documentElement.scrollTop};}
return{x:e.pageX,y:e.pageY};}
var getUID=function(){var id=0;return function(){return'ValumsAjaxUpload'+id++;}}();function fileFromPath(file){return file.replace(/.*(\/|\\)/,"");}
function getExt(file){return(/[.]/.exec(file))?/[^.]+$/.exec(file.toLowerCase()):'';}
Ajax_upload=AjaxUpload=function(button,options){if(button.jquery){button=button[0];}else if(typeof button=="string"&&/^#.*/.test(button)){button=button.slice(1);}
button=get(button);this._input=null;this._button=button;this._disabled=false;this._submitting=false;this._justClicked=false;this._parentDialog=d.body;if(window.jQuery&&jQuery.ui&&jQuery.ui.dialog){var parentDialog=jQuery(this._button).parents('.ui-dialog');if(parentDialog.length){this._parentDialog=parentDialog[0];}}
this._settings={action:'upload.php',name:'userfile',data:{},autoSubmit:true,responseType:false,onChange:function(file,extension){},onSubmit:function(file,extension){},onComplete:function(file,response){}};for(var i in options){this._settings[i]=options[i];}
this._createInput();this._rerouteClicks();}
AjaxUpload.prototype={setData:function(data){this._settings.data=data;},disable:function(){this._disabled=true;},enable:function(){this._disabled=false;},destroy:function(){if(this._input){if(this._input.parentNode){this._input.parentNode.removeChild(this._input);}
this._input=null;}},_createInput:function(){var self=this;var input=d.createElement("input");input.setAttribute('type','file');input.setAttribute('name',this._settings.name);var styles={'position':'absolute','margin':'-5px 0 0 -175px','padding':0,'width':'220px','height':'30px','fontSize':'14px','opacity':0,'cursor':'pointer','display':'none','zIndex':2147483583};for(var i in styles){input.style[i]=styles[i];}
if(!(input.style.opacity==="0")){input.style.filter="alpha(opacity=0)";}
this._parentDialog.appendChild(input);addEvent(input,'change',function(){var file=fileFromPath(this.value);if(self._settings.onChange.call(self,file,getExt(file))==false){return;}
if(self._settings.autoSubmit){self.submit();}});addEvent(input,'click',function(){self.justClicked=true;setTimeout(function(){self.justClicked=false;},3000);});this._input=input;},_rerouteClicks:function(){var self=this;var box,dialogOffset={top:0,left:0},over=false;addEvent(self._button,'mouseover',function(e){if(!self._input||over)return;over=true;box=getBox(self._button);if(self._parentDialog!=d.body){dialogOffset=getOffset(self._parentDialog);}});addEvent(document,'mousemove',function(e){var input=self._input;if(!input||!over)return;if(self._disabled){removeClass(self._button,'hover');input.style.display='none';return;}
var c=getMouseCoords(e);if((c.x>=box.left)&&(c.x<=box.right)&&(c.y>=box.top)&&(c.y<=box.bottom)){input.style.top=c.y-dialogOffset.top+'px';input.style.left=c.x-dialogOffset.left+'px';input.style.display='block';addClass(self._button,'hover');}else{over=false;if(!self.justClicked){input.style.display='none';}
removeClass(self._button,'hover');}});},_createIframe:function(){var id=getUID();var iframe=toElement('<iframe src="javascript:false;" name="'+id+'" />');iframe.id=id;iframe.style.display='none';d.body.appendChild(iframe);return iframe;},submit:function(){var self=this,settings=this._settings;if(this._input.value===''){return;}
var file=fileFromPath(this._input.value);if(!(settings.onSubmit.call(this,file,getExt(file))==false)){var iframe=this._createIframe();var form=this._createForm(iframe);form.appendChild(this._input);form.submit();d.body.removeChild(form);form=null;this._input=null;this._createInput();var toDeleteFlag=false;addEvent(iframe,'load',function(e){if(iframe.src=="javascript:'%3Chtml%3E%3C/html%3E';"||iframe.src=="javascript:'<html></html>';"){if(toDeleteFlag){setTimeout(function(){d.body.removeChild(iframe);},0);}
return;}
var doc=iframe.contentDocument?iframe.contentDocument:frames[iframe.id].document;if(doc.readyState&&doc.readyState!='complete'){return;}
if(doc.body&&doc.body.innerHTML=="false"){return;}
var response;if(doc.XMLDocument){response=doc.XMLDocument;}else if(doc.body){response=doc.body.innerHTML;if(settings.responseType&&settings.responseType.toLowerCase()=='json'){if(doc.body.firstChild&&doc.body.firstChild.nodeName.toUpperCase()=='PRE'){response=doc.body.firstChild.firstChild.nodeValue;}
if(response){response=window["eval"]("("+response+")");}else{response={};}}}else{var response=doc;}
settings.onComplete.call(self,file,response);toDeleteFlag=true;iframe.src="javascript:'<html></html>';";});}else{d.body.removeChild(this._input);this._input=null;this._createInput();}},_createForm:function(iframe){var settings=this._settings;var form=toElement('<form method="post" enctype="multipart/form-data"></form>');form.style.display='none';form.action=settings.action;form.target=iframe.name;d.body.appendChild(form);for(var prop in settings.data){var el=d.createElement("input");el.type='hidden';el.name=prop;el.value=settings.data[prop];form.appendChild(el);}
return form;}};})();

/* AUTOGROW
$('#wall-text').autogrow();
http://www.unwrongest.com/projects/elastic/ */
(function(jQuery){jQuery.fn.extend({autogrow:function(){var mimics=['paddingTop','paddingRight','paddingBottom','paddingLeft','fontSize','lineHeight','fontFamily','width','fontWeight'];return this.each(function(){if(this.type!='textarea'){return false;}
var $textarea=jQuery(this),$twin=jQuery('<div />').css({'position':'absolute','display':'none','word-wrap':'break-word'}),lineHeight=parseInt($textarea.css('line-height'),10)||parseInt($textarea.css('font-size'),'10'),minheight=parseInt($textarea.css('height'),10)||lineHeight*3,maxheight=parseInt($textarea.css('max-height'),10)||Number.MAX_VALUE,goalheight=0,i=0;if(maxheight<0){maxheight=Number.MAX_VALUE;}
$twin.appendTo($textarea.parent());var i=mimics.length;while(i--){$twin.css(mimics[i].toString(),$textarea.css(mimics[i].toString()));}
function setHeightAndOverflow(height,overflow){curratedHeight=Math.floor(parseInt(height,10));if($textarea.height()!=curratedHeight){$textarea.css({'height':curratedHeight+'px','overflow':overflow});}}
function update(){var textareaContent=$textarea.val().replace(/&/g,'&amp;').replace(/  /g,'&nbsp;').replace(/<|>/g,'&gt;').replace(/\n/g,'<br />');var twinContent=$twin.html();if(textareaContent+'&nbsp;'!=twinContent){$twin.html(textareaContent+'&nbsp;');if(Math.abs($twin.height()+lineHeight-$textarea.height())>3){var goalheight=$twin.height()+lineHeight;if(goalheight>=maxheight){setHeightAndOverflow(maxheight,'auto');}else if(goalheight<=minheight){setHeightAndOverflow(minheight,'hidden');}else{setHeightAndOverflow(goalheight,'hidden');}}}}
$textarea.css({'overflow':'hidden'});$textarea.keyup(function(){update();});$textarea.live('input paste',function(e){setTimeout(update,250);});update();});}});})(jQuery);

// LIMIT TEXTAREA VALUE
/*
You have <span id="charsLeft"></span> chars left.
<textarea id="myTextarea"></textarea>
<script type="text/javascript">
	$('#myTextarea').limit('140','#charsLeft');
</script>
*/
(function($){$.fn.extend({limit:function(limit,element)
{var interval,f;var self=$(this);$(this).focus(function(){interval=window.setInterval(substring,100)});$(this).blur(function(){clearInterval(interval);substring()});substringFunction="function substring(){ var val = $(self).val();var length = val.length;if(length > limit){$(self).val($(self).val().substring(0,limit));}";if(typeof element!='undefined')substringFunction+="if($(element).html() != limit-length){$(element).html((limit-length<=0)?'0':limit-length);}";substringFunction+="}";eval(substringFunction);substring()}})})(jQuery);

// HIGHLIGHT TEXT
/*
$('.body').highlight("acknowledgment");
$('.body').highlight(["matching","class name"]);
*/
(function($){$.fn.extend({highlight:function(h){function findText(a,b){if(a.nodeType==3)return searchText(a,b);else if(a.nodeType==1&&a.childNodes&&!(/(script|style)/i.test(a.tagName))){for(var i=0;i<a.childNodes.length;++i){i+=findText(a.childNodes[i],b)}}return 0}function searchText(a,b){var c=a.data.toUpperCase().indexOf(b);if(c>=0)return highlight(a,c,b);else return 0}function highlight(a,b,c){var d=document.createElement('span');d.className='highlight';var e=a.splitText(b);var f=e.splitText(c.length);var g=e.cloneNode(true);d.appendChild(g);e.parentNode.replaceChild(d,e);return 1}return this.each(function(){if(typeof h=='string')findText(this,h.toUpperCase());else for(var i=0;i<h.length;++i)findText(this,h[i].toUpperCase())})}})})(jQuery);

// LIVE AGO TICKER
/*
 * timeago: a jQuery plugin, version: 0.9 (2010-06-21)
 * @requires jQuery v1.2.3 or later
 *
 * Timeago is a jQuery plugin that makes it easy to support automatically
 * updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago").
 *
 * For usage and examples, visit:
 * http://timeago.yarp.com/
 */
(function($){$.timeago=function(timestamp){if(timestamp instanceof Date)return inWords(timestamp);else if(typeof timestamp=="string")return inWords($.timeago.parse(timestamp));else return inWords($.timeago.datetime(timestamp));};var $t=$.timeago;$.extend($.timeago,{settings:{refreshMillis:60000,allowFuture:false,strings:{prefixAgo:null,prefixFromNow:null,suffixAgo:"ago",suffixFromNow:"from now",seconds:"less than a minute",minute:"about a minute",minutes:"%d minutes",hour:"about an hour",hours:"about %d hours",day:"a day",days:"%d days",month:"about a month",months:"%d months",year:"about a year",years:"%d years",numbers:[]}},inWords:function(distanceMillis){var $l=this.settings.strings;var prefix=$l.prefixAgo;var suffix=$l.suffixAgo;if(this.settings.allowFuture){if(distanceMillis<0){prefix=$l.prefixFromNow;suffix=$l.suffixFromNow;} distanceMillis=Math.abs(distanceMillis);} var seconds=distanceMillis/1000;var minutes=seconds/60;var hours=minutes/60;var days=hours/24;var years=days/365;function substitute(stringOrFunction,number){var string=$.isFunction(stringOrFunction)?stringOrFunction(number):stringOrFunction;var value=($l.numbers&&$l.numbers[number])||number;return string.replace(/%d/i,value);} var words=seconds<45&&substitute($l.seconds,Math.round(seconds))||seconds<90&&substitute($l.minute,1)||minutes<45&&substitute($l.minutes,Math.round(minutes))||minutes<90&&substitute($l.hour,1)||hours<24&&substitute($l.hours,Math.round(hours))||hours<48&&substitute($l.day,1)||days<30&&substitute($l.days,Math.floor(days))||days<60&&substitute($l.month,1)||days<365&&substitute($l.months,Math.floor(days/30))||years<2&&substitute($l.year,1)||substitute($l.years,Math.floor(years));return $.trim([prefix,words,suffix].join(" "));},parse:function(iso8601){var s=$.trim(iso8601);s=s.replace(/\.\d\d\d/,"");s=s.replace(/-/,"/").replace(/-/,"/");s=s.replace(/T/," ").replace(/Z/," UTC");s=s.replace(/([\+-]\d\d)\:?(\d\d)/," $1$2");return new Date(s);},datetime:function(elem){var isTime=$(elem).get(0).tagName.toLowerCase()=="time";var iso8601=isTime?$(elem).attr("datetime"):$(elem).attr("title");return $t.parse(iso8601);}});$.fn.timeago=function(){var self=this;self.each(refresh);var $s=$t.settings;if($s.refreshMillis>0){setInterval(function(){self.each(refresh);},$s.refreshMillis);} return self;};function refresh(){var data=prepareData(this);if(!isNaN(data.datetime)){$(this).text(inWords(data.datetime));} return this;} function prepareData(element){element=$(element);if(!element.data("timeago")){element.data("timeago",{datetime:$t.datetime(element)});var text=$.trim(element.text());if(text.length>0)element.attr("title",text);} return element.data("timeago");} function inWords(date){return $t.inWords(distance(date));} function distance(date){return(new Date().getTime()-date.getTime());} document.createElement("abbr");document.createElement("time");})(jQuery);