(function($){$.ajaxSetup({dataFilter:function(data,dataType){if(dataType=="json"&&data.substr(0,5)=="boxon")
{var encoded_params;var unencoded_params={};var data_length=data.length;var delimitor=':';for(var pos=0;pos<data_length;)
{var pos_1=data.indexOf(delimitor,pos);var path=data.substring(pos,pos_1);var pos_2=data.indexOf(delimitor,pos_1+1);var length=parseInt(data.substring(pos_1+1,pos_2));var next_pos=pos_2+length+1;var value=data.substring(pos_2+1,next_pos);if(!encoded_params)
{encoded_params=value;}
else
{unencoded_params[path]=value;}
pos=next_pos+1;}
if(this.boxon_preparsing&&this.boxon_preparsing.boxon_preparsing_callback)
{this.boxon_preparsing.boxon_preparsing_callback(encoded_params,unencoded_params);}
var json=eval("("+encoded_params+")");for(var path in unencoded_params)
{var value=unencoded_params[path];var path_array=path.split('.');var path_length=path_array.length;var path_object=json;for(var i=0;i<path_length-1;i++)
{if(!path_object[path_array[i]])
{path_object[path_array[i]]={};}
path_object=path_object[path_array[i]];}
path_object[path_array[path_length-1]]=value;}
return json;}
return data;},beforeSend:function(xhr,settings)
{if(settings.type.toLowerCase()!='post')return true;if(typeof settings.data=='string'){if(settings.data.indexOf('request_token=')==-1){if(settings.data.length>0)settings.data+='&';settings.data+='request_token='+window.request_token;}
return true;}
if(!settings.data)settings.data={};if(!settings.data.request_token)settings.data.request_token=window.request_token;return true;}});$.extend({getBOXON:function(url,data,callback,boxon_preparsing){if(jQuery.isFunction(data)){type=type||callback;callback=data;data=null;}
return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:'json',boxon_preparsing:boxon_preparsing});},postBOXON:function(url,data,callback,boxon_preparsing){if(jQuery.isFunction(data)){type=type||callback;callback=data;data={};}
return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:'json',boxon_preparsing:boxon_preparsing});},box:{formatQuery:function(query){function toURIComponents(obj,prefix,data){prefix=prefix||'';data=data||[];if(typeof obj=='string'||typeof obj=='number'){data.push(prefix+'='+encodeURIComponent(obj));}else if(typeof obj=='boolean'){data.push(prefix+'='+(obj?1:0));}else{for(var p in obj){data=toURIComponents(obj[p],prefix+'['+p+']',data);}}
return data;}
return toURIComponents(query,'q').join('&');},getFlashVersion:function(){var plugin=navigator.plugins?(navigator.plugins['Shockwave Flash']||navigator.plugins['Shockwave Flash 2.0']):null;if(plugin)return plugin.description.split(' ')[2];function try_get_version(suffix){try{var flash=new ActiveXObject('ShockwaveFlash.ShockwaveFlash'+suffix);return flash.GetVariable('$version');}catch(e){return(typeof flash!='undefined')?-1:0;}}
var version=try_get_version('.7');if(!version)version=try_get_version('.6');if(version==-1)return 6.0;if(!version)version=try_get_version('.3');if(version==-1)return 3.0;if(!version){version=try_get_version('');if(version==-1)return 2.0;}
if(version){var version_array=version.split(' ')[1].split(',');return version_array[0]+'.'+version_array[1];}
return 0;},isEmail:function(str){var email_regex=new RegExp("^[a-zA-Z0-9'._%+-]+@([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$");return email_regex.exec(str)?true:false;},translate:function(eng,id){var args=Array.prototype.slice.call(arguments);args=(args.length>2)?args.slice(2).reverse():null;var t_part=(typeof(enable_ajax_translation)!='undefined'&&enable_ajax_translation)?'^'+id+'^':'';var sprintf2=function(text){if(!args||!text)return text;var counter=args.length;for(index in args){text=text.replace('%'+counter,args[index]);counter--;}
return text+t_part;}
if(typeof(LANGUAGE)=='undefined'||LANGUAGE=='eng'||!TRANSLATIONS[id])return sprintf2(eng);return sprintf2(TRANSLATIONS[id][LANGUAGE]||eng)+t_part;}},text:function(text){if(!window['__convert_to_text_div'])window['__convert_to_text_div']=document.createElement('div');var div=window['__convert_to_text_div'];(typeof div.innerText!='undefined')?div.innerText=text:div.textContent=((text===0)?text+'':text||'');return div.innerHTML;}});$t=$.box.translate;$j=jQuery.noConflict();$.fn.extend({attach:function(element){var offset=$j(this).offset();var height=$j(this).outerHeight();$j(element).css({position:'absolute',top:offset.top+height,left:offset.left});return this;},boxDatePicker:function(settings){var box_settings={mandatory:true,changeMonth:false,changeYear:false,changeFirstDay:false,hideIfNoPrevNext:true,showAnim:'slideDown'};$.extend(settings,box_settings);this.datepicker(settings);},boxTooltip:function(params){params=$.extend({bodyHandler:function()
{var text=(params.text||this.tooltipText);text=$.text(text);if(params.html)
{text=params.html;}
return'<div class="tooltip_normal"><div class="tooltip_arrow"></div><div class="tooltip_background"><h3>'+text+'</h3></div></div>';},delay:1,sticky:(true&&(!params||!params.track)),top:0},params||{});this.Tooltip(params);return this;},boxTooltipInfo:function(params){var me=this;params=$.extend({bodyHandler:function()
{var heading=(params.heading||me.attr('heading'));var text=(params.text||this.tooltipText);heading=$.text(heading);text=$.text(text);return'<div class="tooltip_info"><div class="tooltip_background"><h2>'+heading+'</h2><h3>'+text+'</h3></div><div class="tooltip_arrow"></div></div>';},delay:1,sticky:(true&&(!params||!params.track)),top:params.top?params.top:0,left:params.left?params.left:0},params||{});this.Tooltip(params)
return this;},fastHtml:function(html){if(!html)return this.html();return this.each(function(){this.innerHTML=html;});},fastText:function(str){if(!str)return this.text();return this.each(function(){(typeof this.innerText!='undefined')?this.innerText=str:this.textContent=str;});},hasParent:function(str){return(this.parents(str).length>0);}});window.$=function(id){return $('#'+id).get(0);};$.addRequestTokens=function(o){$.box.appendRequestToken=function(form){};$('form').each(function(){if($(this).attr('method').toLowerCase()!='post')return;if($(this).find("input[name='request_token']").length>0)return;$.box.appendRequestToken(this);});};$(function(){$.addRequestTokens();$('textarea[maxlength][maxlength!=-1]').each(function()
{$(this).maxLength($(this).attr('maxlength'));});});$.in_error=0;$.oldAjax=$.ajax;$.ajax=function(s){var oldSuccess=s.success;s.success=function(response){$.in_error=0;if(typeof response=='object'&&response)
{if(response.profiling_message)
{alert(response.profiling_message);s.url=s.url+'&no_profiling_message=1';$.oldAjax(s);return false;}
if(response.e_session)
{window.onbeforeunload=null;if(response.errormessage=='session limit reached'){window.location=site_root+'logout';}
else if(response.errormessage=='request token invalid'){alert('The page you were viewing has expired. Please try your request again.');window.location.reload();}
else if(response.errormessage=='redirect required'){alert('The page you were viewing has expired. Please try your request again.');window.location.reload();}
else if(response.errormessage=='redirect required'){alert('The page you were viewing has expired. Please try your request again.');window.location.reload();}
else{window.location=site_root+'login';}
return false;}}
if($.isFunction(oldSuccess))oldSuccess.apply(this,arguments);};var oldError=s.error;s.error=function(xhr,error,exception){if($.popup.get().is(':visible')){$.popup.revert();}
if($.in_error==0){$.in_error=1;var url=site_root+'index.php?rm=box_ajax_log_response_error';if(error&&error!='timeout')
{var code=xhr.status;var response=xhr.responseText;var statustext=xhr.statusText;}
var data={error:error,code:typeof code=='undefined'?'':code,response:typeof response=='undefined'?'':response,statustext:typeof statustext=='undefined'?'':statustext,exception:typeof exception=='undefined'?'':exception,request_url:s.url,request_type:s.type,request_data:s.data,current_location:window.location.href};$.post(url,data);if(!(code==200&&response==""&&error=='parsererror')&&!(code==0&&response==""&&error=='error')){}}
if($.isFunction(oldError))oldError.apply(this,arguments);};if(typeof Canvas!='undefined'&&typeof Canvas.get()!='undefined'&&Canvas.get().add_context_to_ajax)
{if(typeof s.data=='string')
{s.data+=(s.data?'&':'')+$j.box.formatQuery({context:Canvas.get().context()});}
else
{if(s.url.indexOf('?')>0)
{s.url+='&'+$j.box.formatQuery({context:Canvas.get().context()});}
else
{s.url+='?'+$j.box.formatQuery({context:Canvas.get().context()});}}}
$.oldAjax(s);};$.oldPost=$.post
$.post=function(url,data,callback,type)
{if(jQuery.isEmptyObject(data))
{if(typeof data!=="string")
{data={'dummy_variable_that_wont_have_namespace_conflict':"true"};}}
$.oldPost(url,data,callback,type);};$.isEmptyObj=function(o){var i,v;if($.typeOf(o)==='object'){for(i in o){v=o[i];if(v!==undefined&&$.typeOf(v)!=='function'){return false;}}}return true;};$.typeOf=function(value){var s=typeof value;if(s==='object'){if(value){if(typeof value.length==='number'&&!(value.propertyIsEnumerable('length'))&&typeof value.splice==='function'){s='array';}}else{s='null';}}return s;};$.ps_timeout_id=null;$.fn.password_strength=function(options){options=options||{};var test_password=function()
{if($._ps_timeout_id)
{clearTimeout($._ps_timeout_id);$._ps_timeout_id=null;}
var me=this;$._ps_timeout_id=setTimeout(function(){$j.postBOXON('/index.php?rm=box_password_strength_meter',{password:me.value},function(json)
{$j('#password_strength_meter').parent().html(json.html);});},75);}
if(this.val())
{$j.postBOXON('/index.php?rm=box_password_strength_meter',{password:this.val()},function(json)
{$j('#password_strength_meter').parent().html(json.html);});}
this.keyup(test_password).blur(test_password);};$.stopEvent=function(e){if(!e)var e=window.event;e.cancelBubble=true;e.returnValue=false;if(e.stopPropagation){e.stopPropagation();e.preventDefault();}
return false;};$.fn.loading_dots=function(options){options=options||{};options.period=options.period||400;this.append('<span class="loading_dots">.</span>');var me=this.find('.loading_dots');timer_dots=window.setInterval(function()
{var dots='.';var current=me.text();if(current.length<3)
{dots+=(current.length==1)?'.':'..';}
me.text(dots);},options.period)};})(jQuery);


