(function($){$.fn.loadTabPane=function(){$(this).find('input,textarea,select,checkbox').focus(function(){$(this).addClass('focussed');}).blur(function(){$(this).removeClass('focussed');});$(this).tabs({show:function(){$(this).children('div').eq($(this).tabs('option','selected')).find('input[type!="hidden"][class!="ui-tabs-tabbetween"],textarea,select,checkbox').eq(0).focus();}});$(this).children('div').append('<input class="ui-tabs-tabbetween" />');$(this).find('.ui-tabs-tabbetween').focus(function(){var tabPane=$(this).parents('.App_TabPane');var next=tabPane.tabs('option','selected')+1;if(next==tabPane.tabs('length')){return;}
tabPane.tabs('option','selected',next);});$(this).find('>ul>li>a').focus(function(){$(this).click();}).click(function(){var tabPane=$(this).parents('.App_TabPane');tabPane.children('div').eq(tabPane.tabs('option','selected')).find('input[type!="hidden"][class!="ui-tabs-tabbetween"],textarea,select,checkbox').eq(0).focus();});};$.fn.popup=function(action,options){if(typeof(_visioncms_applicationUrl)!='undefined'){var blockUI=_visioncms_applicationUrl+'_visioncms/_includes/jscripts/jquery.blockUI.js';var content=$(this);var callback=function(){content.popup(action,options);};if($.getScript(blockUI,callback,false)){return;}}
switch(action){default:case'open':options=$.extend({clearInputs:true,zIndex:2000,blockColor:'#000',blockOpacity:0.65,title:false,width:false},options);var popup=$('#App_Popup');if(popup.length==0){popup=$($.fn.popup.template).appendTo('body').keyup(function(event){switch(event.keyCode){case 13:$(this).find('input[type="image"]').click();break;case 27:$(this).popup('close');break;}});popup.find(".close, .cancel").click(function(event){popup.popup('close');event.preventDefault();});}
if(options.width){popup.css('width',options.width);}
popup.find('.title').remove();if(options.title){popup.find(".close").after('<div class="title">'+options.title+'</div>');}
$('<div id="App_Popup_placeholder"></div>').insertAfter($(this));popup.find('.content').html($(this).show());if(options.clearInputs){$(this).find("input[type='text'],input[type='password'],select,textarea").each(function(){if(!$(this).attr('disabled')){$(this).val('');}});}
$.blockUI({message:popup,css:{backgroundColor:'transparent',cursor:'default',textAlign:'left',border:'0',top:'20%',width:'auto'},baseZ:options.zIndex,focusInput:true,overlayCSS:{backgroundColor:options.blockColor,opacity:options.blockOpacity}});$(".blockUI.blockOverlay").click(function(event){popup.popup('close');event.preventDefault();});$.fn.popup.originalScrollTop=$(window).scrollTop();if((popup.outerHeight()+popup.offset().top-$(window).scrollTop())>$(window).height()){popup.parent().css('position','absolute').css('top',40);$(window).scrollTop(0);}else{popup.parent().css('top',($(window).height()-popup.outerHeight())/2).css('left',($(window).width()-popup.outerWidth())/2);}
$(document).trigger('openPopup');break;case'close':$.unblockUI();if($.fn.popup.originalScrollTop){$(window).scrollTop($.fn.popup.originalScrollTop);}
var placeholder=$('#App_Popup_placeholder');$('#App_Popup').find('.content').children(0).hide().insertBefore(placeholder);placeholder.remove();$(document).trigger('closePopup');break;}}
$.fn.autoPopup=function(type,pageId,popupId){switch(type){case 1:if(!($.cookie("popup_"+pageId+"_"+popupId))){$.cookie("popup_"+pageId+"_"+popupId,"1");$(this).popup('open',{clearInputs:false});}
break;case 2:if(!($.cookie("popup_"+pageId+"_"+popupId))){$.cookie("popup_"+pageId+"_"+popupId,"1",{expires:365});$(this).popup('open',{clearInputs:false});}
break;case 3:$(this).popup('open',{clearInputs:false});break;}}
$.fn.popup.template='<div id="App_Popup" class="App_Popup"><div class="close"></div><div class="body"><div class="content"></div><div class="clear"></div></div></div>';$.fn.collapseText=function(settings){settings=$.extend({collapseFrom:1,linkText:'read more&hellip;'},settings);var collapsed=$(this).find('p:gt('+(settings.collapseFrom-1)+')').css('display','none');if(collapsed.length>0){$('<a>'+settings.linkText+'</a>').css('cursor','pointer').click(function(){$(this).toggle();collapsed.toggle();}).appendTo($(this).find('p:eq('+(settings.collapseFrom-1)+')').append('&nbsp;'));}};})(jQuery);$.getScript=function(url,callback,preloadedCallback){if(preloadedCallback==null&&callback){preloadedCallback=callback;}
url=url.replace(/(_[0-9]+)?\.js(\?.*)?/,'.js');if($.inArray(url,$.loadedScripts)>=0){if(preloadedCallback){preloadedCallback();}
return false;}
$.loadedScripts[$.loadedScripts.length]=url;$.ajax({type:'GET',url:url,success:callback,dataType:'script',cache:true});return true;};$.showLoadingMessage=function(options){if(typeof(options)=='string'){options={message:options};}
if(typeof(_visioncms_interfaceUrl)!='undefined'&&typeof($.blockUI)!='function'){var blockUI=_visioncms_interfaceUrl+'scripts/jquery.blockUI.js';var callback=function(){$.showLoadingMessage(options);};if($.getScript(blockUI,callback,false)){return;}}
options=$.extend({message:'Loading&hellip;<br />Please wait',zIndex:2000,blockColor:'#fff',blockOpacity:0.8},options);var messageDiv=$('#VisionCMS_loadingMessage');if(messageDiv.length==0){messageDiv=$('<div id="VisionCMS_loadingMessage"><p></p></div>');$('body').append(messageDiv);}
messageDiv.find('p').html(options.message);$.blockUI({message:messageDiv,css:{backgroundColor:'transparent',border:'0',left:'40%'},baseZ:options.zIndex,overlayCSS:{backgroundColor:options.blockColor,opacity:options.blockOpacity}});}
$.hideLoadingMessage=function(){$.unblockUI();}
$.loadStylesheet=function(href,media){if(media==null){media='all';}
$('head').append('<link rel="stylesheet" type="text/css" media="'
+media+'" href="'+href+'" />');}
$(document).ready(function(){$.loadedScripts=new Array();$('script[src]').each(function(){$.loadedScripts[$.loadedScripts.length]=$(this).attr('src').replace(/(_[0-9]+)?\.js(\?.*)?/,'.js');});});document.showLoadingMessage=function(status,message,zIndex){if(status==null||status){$.showLoadingMessage({message:message,zIndex:zIndex});}else{$.hideLoadingMessage();}}
document.isChildOf=function(childObj,parentObj){while(childObj.parentNode!=parentObj&&childObj.parentNode!=null){childObj=childObj.parentNode;}
return(childObj.parentNode==parentObj);}
document.getElementsByClassName=function(className,tag,elm){var testClass=new RegExp("(^|\\s)"+className+"(\\s|$)");var tag=tag||"*";var elm=elm||document;var elements=(tag=="*"&&elm.all)?elm.all:elm.getElementsByTagName(tag);var returnElements=[];var current;var length=elements.length;for(var i=0;i<length;i++){current=elements[i];if(testClass.test(current.className)){returnElements.push(current);}}
return returnElements;}
document.stylePropertyHashTable={'float':'cssFloat'}
document.getStylePropertyJsName=function(property){if(document.stylePropertyHashTable[property]!=null){return document.stylePropertyHashTable[property];}else{var jsProperty='';for(var i=0;i<property.length;i++){if(property.charAt(i)=='-'){jsProperty+=property.charAt(i+1).toUpperCase();++i;}else{jsProperty+=property.charAt(i);}}
document.stylePropertyHashTable[property]=jsProperty;return jsProperty;}}
document.getStyleValue=function(element,property){if(typeof(element.currentStyle)!='undefined'){var value=element.currentStyle[this.getStylePropertyJsName(property)];}else{var value=window.getComputedStyle(element,null).getPropertyValue(property);}
switch(property){case'color':case'background-color':if(value.indexOf('rgb')==0){var rgba=value.indexOf('rgba')==0;value=value.substr(rgba?5:4,value.length-(rgba?6:5));value=value.split(', ');var colour='#';if(rgba&&value[3]==0){colour='transparent';}else{for(i=0;i<3;i++){var part=parseInt(value[i]).toString(16);if(part.length==1){part='0'+part;}
colour+=part;}}
value=colour;}
break;case'background-position-y':if(value==''){value='top';}
break;case'background-position-x':if(value==''){value='left';}
break;}
return value;}
String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,'');}
String.prototype.ltrim=function(){return this.replace(/^\s+/,'');}
String.prototype.rtrim=function(){return this.replace(/\s+$/,'');}
Array.prototype.binarySearchFilter=function(key){if(key==''){return-1;}
key=key.toLowerCase();var low=0;var high=this.length-1;var middle;var text;while(low<=high){middle=(low+high)>>>1;text=this[middle].substring(0,key.length);if(key==text){while(middle>0&&this[middle-1].substring(0,key.length)==key){--middle;}
return middle;}else if(key<text){high=middle-1;}else{low=middle+1;}}
return-1;}
Array.prototype.contains=function(item){for(var i=0;i<this.length;i++){if(this[i]==item){return true;}}
return false;}
document.textarea_enforceMaxlength=function(e){var e=new EventInfo(e,'TEXTAREA');var maxlength=e.target.getAttribute('maxlength');switch(e.type){case'keypress':if(e.keyCode<32){return true;}
if(e.target.value.length>=maxlength){e.cancel();return false;}
return true;break;case'keyup':if(e.target.value.length>maxlength){alert('A maximum of '+maxlength+' characters can be entered in this field. Your input will be truncated to meet this restriction.');e.target.value=e.target.value.substring(0,maxlength);e.target.focus();}
document.getElementById(e.target.id+'_charCount').innerHTML=e.target.value.length;break;}
return true;}
document.input_limitChars=function(e){e=new EventInfo(e);var availableChars=e.target.getAttribute('availableChars');if(e.keyCharacter==null){return;}
if(availableChars.indexOf(e.keyCharacter)==-1){e.cancel();return false;}
return true;}
document.browserInfo=new BrowserInfo();function BrowserInfo(){this.isMSIE=(navigator.appName=="Microsoft Internet Explorer");this.isGecko=(navigator.userAgent.indexOf('Gecko')!=-1);this.isSafari=(navigator.userAgent.indexOf('Safari')!=-1);this.isMac=(navigator.userAgent.indexOf('Mac')!=-1);this.isOpera=(navigator.userAgent.indexOf('Opera')!=-1);this.isFirefox=(navigator.userAgent.indexOf('Firefox')!=-1);this.version=(navigator.appName=='Microsoft Internet Explorer')?parseFloat((new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})")).exec(navigator.userAgent)[1]):-1;}
document.cancelEvent=function(e){if(e.event!=null){e=e.event;}
if(document.browserInfo.isMSIE){e.returnValue=false;e.cancelBubble=true;}
if(e.stopPropagation){e.stopPropagation();}
if(e.preventDefault){e.preventDefault();}}
document.registerEventHandler=function(parent,eventName,handler){if(parent==null){return;}
if(this.browserInfo.isMSIE){if(parent.eventHandlers==null){parent.eventHandlers=new Array();}
if(parent.eventHandlers[eventName]==null){parent.eventHandlers[eventName]=new Array();parent.attachEvent('on'+eventName,document.executeEventHandlers);}
parent.eventHandlers[eventName][parent.eventHandlers[eventName].length]=handler;}else{return parent.addEventListener(eventName,handler,true);}}
document.executeEventHandlers=function(e){e=new EventInfo(e);while((e.target.eventHandlers==null||e.target.eventHandlers[e.type]==null)&&e.target.parentNode!=null){e.target=e.target.parentNode;}
if(e.target.eventHandlers==null||e.target.eventHandlers[e.type]==null){return false;}
for(var i=0;i<e.target.eventHandlers[e.type].length;i++){e.target.eventHandlers[e.type][i](e.event);}
return true;}
function EventInfo(e,tagName){if(!e){e=window.event;}
this.event=e;this.type=e.type;this.currentTarget=e.currentTarget;this.target=(e.target!=null?e.target:e.srcElement);if(this.target!=null&&this.target.nodeType==3){this.target=this.target.parentNode;}
if(document.browserInfo.isMSIE&&this.target==null){this.target=parent;}
if(tagName!=null){this.target=this.getTarget(tagName);}
if(e.which){this.keyCode=e.which;}else{this.keyCode=e.keyCode;}
if(e.which==null||(e.which!=0&&e.which!=8)){this.keyCharacter=String.fromCharCode(this.keyCode);}else{this.keyCharacter=null;}
this.rightClick=(e.button==2);this.mouseX=0;this.mouseY=0;if(e.pageX||e.pageY){this.mouseX+=e.pageX;this.mouseY+=e.pageY;}else if(e.clientX||e.clientY){this.mouseX+=e.clientX+$(window).scrollLeft();this.mouseY+=e.clientY+$(window).scrollTop();}}
EventInfo.prototype.getTarget=function(tagName){if(typeof(tagName)=='undefined'||this.target.tagName==tagName.toUpperCase()){return this.target;}
target=this.target;while(target!=null){if(target.tagName==tagName.toUpperCase()){return target;}
target=target.parentNode;}
return null;}
EventInfo.prototype.cancel=function(){document.cancelEvent(this.event);}
