var _____WB$wombat$assign$function_____=function(name){return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name))||self[name];};if(!self.__WB_pmw){self.__WB_pmw=function(obj){this.__WB_source=obj;return this;}}{ let window = _____WB$wombat$assign$function_____("window"); let self = _____WB$wombat$assign$function_____("self"); let document = _____WB$wombat$assign$function_____("document"); let location = _____WB$wombat$assign$function_____("location"); let top = _____WB$wombat$assign$function_____("top"); let parent = _____WB$wombat$assign$function_____("parent"); let frames = _____WB$wombat$assign$function_____("frames"); let opens = _____WB$wombat$assign$function_____("opens"); /** * Author: Max Chirkov * Email: max.chirkov@gmail.com * Website: www.SimpleRealtyTheme.com * * Version: 2.9 */ var pullouts_container = false; var pow_widgets = new Array; var pow_opened = ''; var pow_mouse_is_inside = false; var trigger_on = false; var trigger_lunched = false; var processing = new Array; if(typeof powVars != 'undefined'){ //hiding widgets that should be pullouts from loading on the screen //otherwise they will show on the screen and then relocate to their pullout positions //in a split second.. kinda lame :) for(i in powVars){ if( document.getElementById(i) ){ document.getElementById(i).style.display = 'none'; }else{ delete powVars[i]; } } //important to do on window load, otherwise can't get the true height of some elements jQuery(window).load(function(){ setTimeout('pullouts();', 100); //defining pullouts container pullouts_container = jQuery('
'); //append pullouts to the bottom of the body jQuery('body').append(pullouts_container); }); function pullouts(){ //jQuery(document).ready(function(){ var opposits = { 'top' : 'bottom', 'bottom' : 'top', 'left' : 'right', 'right' : 'left' }; var n = 0; for(i in powVars){ n++; //detach widget from the sidebar var widget = jQuery('#' + i ); //make it visible again widget.css({'display':'block'}); widget.css('width', 'auto'); //reset widget width to auto //create a pullout object var pullout = jQuery('
'); //append widget to the pullout object pullout.find('.pullout-content').append(widget); pullout.appendTo(pullouts_container); var widget_width = false; var pullout_width = false; var pullout_height = false; var position = false; var label_open = label_close = ''; if( !powVars[i]['style']['no_label'] || !powVars[i]['style']['icon'] ){ //default tab labels if(powVars[i]['style']['open_label']){ label_open = powVars[i]['style']['open_label']; }else if(powVars[i]['style']['label']){ label_open = powVars[i]['style']['label']; }else{ label_open = 'Open'; } if(powVars[i]['style']['close_label']){ label_close = powVars[i]['style']['close_label'] }else if(powVars[i]['style']['open_label']){ label_close = powVars[i]['style']['open_label']; }else if(powVars[i]['style']['label']){ label_close = powVars[i]['style']['label']; }else{ label_close = 'Close'; } } //first set pullout width, because content flow depends on it so as pullout's height //if the width was defined explicitly if(powVars[i]['style']['width']){ pullout_width = parseInt(powVars[i]['style']['width']); } if(!pullout_width){ pullout_width = pullout.outerWidth(true); } //explicitly set pullout width pullout.css('width', pullout_width+'px'); //get side var side = powVars[i]['position']['side']; pullout.addClass('side_' + side); //set styles if they were selected if( powVars[i]['style']['rounded'] ){ pullout.addClass('rounded'); } if( powVars[i]['style']['borders'] ){ pullout.addClass('borders'); } var tab_offset = 0; // in percentile if( powVars[i]['style']['tab_offset'] ) tab_offset = powVars[i]['style']['tab_offset']; //set scrollable widgets except the bottom one if( powVars[i]['position']['scroll'] && 'bottom' != side ){ pullout.css( 'position', 'absolute'); } //define anchor if( powVars[i]['position']['anchor'] == '0' ){ var v_anchor = 'top'; var h_anchor = 'left'; }else{ var v_anchor = 'bottom'; var h_anchor = 'right'; } //add open/close tab var pullout_button = jQuery('
'+ label_open + '
'); pullout.append(pullout_button); //check if tab icon set if( powVars[i]['style']['icon'] ){ var icon = powVars[i]['style']['icon']; var coord = icon.split('_'); var grid = 36; var x = grid * parseInt(coord[0]); var y = grid * parseInt(coord[1]); pullout_button.prepend('
'); pullout.find('.icon.'+icon).css( 'background-position', '-' + x + 'px' + ' -' + y + 'px' ); } if(label_open.length < 1){ pullout.find('.pullout-button span').remove(); pullout.find('.icon').css('margin', '10px'); } //after adding borders class, we need to recalculate the width, //unfortunately outerWidth executes too soon and doesn't include the width of the border //so we calculate it separately var border_width = { 'top': 0, 'right': 0, 'bottom': 0, 'left': 0 }; var _w = parseFloat( pullout_button.css('border-left-width') ); border_width.left = ( isNaN( _w ) ) ? 0 : _w; var _w = parseFloat( pullout_button.css('border-right-width') ); border_width.right = ( isNaN( _w ) ) ? 0 : _w; var _w = parseFloat( pullout_button.css('border-top-width') ); border_width.top = ( isNaN( _w ) ) ? 0 : _w; var _w = parseFloat( pullout_button.css('border-bottom-width') ); border_width.bottom = ( isNaN( _w ) ) ? 0 : _w; var pullout_button_width = pullout_button.outerWidth(false); var pullout_button_height = pullout_button.outerHeight(false); //Some themes like Genesis and Twenty Eleven need width of the borders to be added //to the width of the tab. //We need to get only 2 borders, but don't know which ones defined, //because tabs could be vertical and borders switch sides. //We know that in any case only 3 borders will be defined. var _two_borders_width = (border_width.left + border_width.right + border_width.top + border_width.bottom) / 3 * 2; pullout_button.css('min-width', pullout_button_width + 'px'); //get and set the height after the width has been set so we aquire the correct height //pullout.css('padding', '0px'); pullout_height = pullout.outerHeight(false); //define position based on the side //according to width/height the pullouts will slide within the same dimensions if( side == 'left' || side == 'right' ){ //set min-height on the side so it could expand if needed pullout.css('min-height', pullout_height+'px'); //pullout positioning for hiding including border width position = pullout_width + border_width[opposits[side]]; //var btn_dimensions = pullout_button_width + 2*border_width[opposits[side]]; var btn_dimensions = pullout_button_width + border_width[opposits[side]]; //calculating button offset based on tab_offset parameter btn_offset = get_tab_offset( pullout_height - pullout_button_height ); var tab_position = btn_offset; //specify positioning of the pullout button pullout_button.css(opposits[side], '-' + btn_dimensions + 'px') .css('top', tab_position + 'px'); //add padding to center the label and compensate for the missing border //+ overlap the border of the pullout content pullout_button.css( 'padding-' + side, border_width[opposits[side]]*2 + 'px'); }else{ //set static height on top and bottom since min-height will affect the hiding effect //and the content will be sticking out more than needed when in hidden/closed state pullout.css('height', pullout_height+'px'); position = pullout_height + border_width[opposits[side]]; var btn_dimensions = pullout_button_height + border_width[opposits[side]]; //var btn_dimensions = pullout_button_height; // TODO: pullout_button_width is incorrect therefor I'm temporarily // adding 2 borders to fix the calculations. btn_offset = get_tab_offset( pullout_width - pullout_button_width - 2*border_width[opposits[side]] ); var tab_position = btn_offset; //specify positioning of the pullout button pullout_button.css(opposits[side], '-' + btn_dimensions + 'px') .css('left', tab_position + 'px'); //add padding to center the label and compensate for the missing border pullout_button.css( 'padding-' + side, 2*border_width[opposits[side]] + 'px'); } if( pow_supports_css3transform() && powVars[i]['style']['rotate'] && ('left' == side || 'right' == side) ){ pullout_button.addClass('rotate'); var btn_dimensions = pullout_button_height - 2*border_width[opposits[side]]; btn_offset = get_tab_offset(pullout_height - pullout_button_width ); var tab_position = (pullout_button_height + border_width[opposits[side]])*-1 + btn_offset; pullout_button.css(opposits[side], '-' + (btn_dimensions + 2*border_width[opposits[side]]) + 'px') .css('top', tab_position + 'px'); //add padding to center the label and compensate for the missing border pullout_button.css( 'padding', 2*border_width[opposits[side]] + 'px 0 0 0'); } //position anchor via css if( side == 'left' || side == 'right' ){ pullout.css( v_anchor, powVars[i]['position']['distance'] ); }else{ pullout.css( h_anchor, powVars[i]['position']['distance'] ); } //re-position widget on selected side - hide it and add class closed pullout.css(side, '-' + position + 'px').addClass('pullout-closed'); //set color if(powVars[i]['style']['color']){ pullout.css('background-color', powVars[i]['style']['color']); pullout_button.css('background-color', powVars[i]['style']['color']); } if(powVars[i]['style']['text_color']) pullout.css('color', powVars[i]['style']['text_color']); if(powVars[i]['style']['link_color']) pullout.find('a').css('color', powVars[i]['style']['link_color']); if(powVars[i]['style']['borders'] && powVars[i]['style']['border_color']) pullout.find('.pullout-content').css('border-color', powVars[i]['style']['border_color']); pullout_button.css('border-color', powVars[i]['style']['border_color']); pow_widgets.push( { id: 'pullout-' + n, position: position, side: side, label_open: label_open, label_close: label_close, trigger_on: powVars[i]['style']['show_on'], speed: powVars[i]['style']['speed'], timer: parseInt(powVars[i]['behavior']['timer'])*1000, element: powVars[i]['behavior']['element'], easing: powVars[i]['behavior']['easing'], n_pages: powVars[i]['behavior']['n_pages'] } ); } //setup listeners pow_listen_appear(); pow_start_page_count(); pow_start_timer(); //mouse location listener jQuery('.pullouts').mouseenter(function(){ pow_mouse_is_inside = true; //reset trigger bindings pow_reset_trigger(); //get current id var current_id = jQuery(this).attr('id'); var widget = get_pow(current_id); var trigger_on = widget['trigger_on']; //bind respective behaviours if( 'mouseover' == trigger_on ){ pow_mouseover(widget['id']); }else{ pow_click(widget['id']); } }).mouseleave(function(){ pow_mouse_is_inside = false; }); //if click outside of pullout area - close pullout jQuery('body').mouseup(function(){ if( !pow_mouse_is_inside ){ pow_close(pow_opened); } }); function get_tab_offset(side_size){ var tab_offset = (powVars[i]['style']['tab_offset']) ? parseInt(powVars[i]['style']['tab_offset']) : 0; switch(powVars[i]['style']['tab_offset_type']){ case '%': var offset = Math.round(side_size*tab_offset/100); //round straight corners round_straight_corners(powVars[i]['position']['side'], offset, side_size); return offset; case 'px': var offset = tab_offset; round_straight_corners(powVars[i]['position']['side'], offset, side_size); return offset; } } function round_straight_corners(side, offset, side_size){ if(!powVars[i]['style']['rounded']) return false; if(offset > 0 && offset < side_size){ if( 'left' == side || 'right' == side ){ pullout.css("border-bottom-" + opposits[side] + "-radius", "10px"); pullout.css("border-top-" + opposits[side] + "-radius", "10px"); pullout.find('.pullout-content').css("border-bottom-" + opposits[side] + "-radius", "10px"); pullout.find('.pullout-content').css("border-top-" + opposits[side] + "-radius", "10px"); } if( 'top' == side || 'bottom' == side ){ pullout.css("border-" + opposits[side] + "-left-radius", "10px"); pullout.find('.pullout-content').css("border-" + opposits[side] + "-left-radius", "10px"); pullout.css("border-" + opposits[side] + "-right-radius", "10px"); pullout.find('.pullout-content').css("border-" + opposits[side] + "-right-radius", "10px"); } }else if( offset == side_size ){ if( 'left' == side || 'right' == side ){ pullout.css("border-bottom-" + opposits[side] + "-radius", "0px"); pullout.css("border-top-" + opposits[side] + "-radius", "10px"); pullout.find('.pullout-content').css("border-bottom-" + opposits[side] + "-radius", "0px"); pullout.find('.pullout-content').css("border-top-" + opposits[side] + "-radius", "10px"); } if( 'top' == side || 'bottom' == side ){ pullout.css("border-" + opposits[side] + "-left-radius", "10px"); pullout.css("border-" + opposits[side] + "-right-radius", "0px"); pullout.find('.pullout-content').css("border-" + opposits[side] + "-left-radius", "10px"); pullout.find('.pullout-content').css("border-" + opposits[side] + "-right-radius", "0px"); } } } }//); } function pow_listen_appear(){ for(i in pow_widgets){ var id = pow_widgets[i].id; if( ('appear' == pow_widgets[i].trigger_on || 'appear_once' == pow_widgets[i].trigger_on) && pow_widgets[i].element.length > 0 ){ var once = false; if('appear_once' == pow_widgets[i].trigger_on) once = true; jQuery(pow_widgets[i].element).appear(function(event, id){ do_pullout(id); },{ one: once, data: [id] }); } } } function pow_click(id){ jQuery('.pullout-button').click(function(){ do_pullout(id); }); } function pow_mouseover(id){ //preventing slide on/off on tab hover if( pow_opened != id ){ do_pullout(id); } //if mouse moves outside of pullout area - close pullout jQuery('#'+id).bind('mouseleave', function(){ var t = setTimeout("pow_delay_mouseout_close()", 500); }); } //when widget closes on mouseleave, we set delay so it doesn't //go all crazy on multiple mouse-in/out. function pow_delay_mouseout_close(){ if(!pow_mouse_is_inside) pow_close(pow_opened); } function pow_reset_trigger(){ jQuery('.pullout-button').unbind('click'); jQuery('.pullout-button').unbind('mouseover'); } function get_pow(id){ for(i in pow_widgets){ if(pow_widgets[i].id == id){ return pow_widgets[i]; } } return false; } function do_pullout(id){ if( !jQuery.inArray(id, processing) ) return false; if( jQuery('#' + id).is('.pullout-opened') ){ pow_close(id); }else{ pow_open(id); } } function pow_open(id){ var widget = get_pow(id); if(!widget) return; //check if there is opened widget if( pow_opened.length > 0 && pow_opened != id ){ pow_close(pow_opened); //close opened widget } var pullout_id = '#' + widget.id; jQuery(pullout_id).removeClass('pullout-closed'); jQuery(pullout_id).addClass('pullout-opened'); jQuery(pullout_id + ' .pullout-button span').html(widget.label_close); pow_slide(widget, '+'); pow_opened = id; // assign new id to opened global } function pow_close(id){ var widget = get_pow(id); if(!widget) return; //check if there is opened widget if( pow_opened.length > 0 && pow_opened == id ){ pow_opened = ''; //close opened widget } var pullout_id = '#' + widget.id; jQuery(pullout_id + ' .pullout-button span').html(widget.label_open); processing.push(id); pow_slide(widget, '-'); setTimeout(function(){ jQuery(pullout_id).removeClass('pullout-opened'); jQuery(pullout_id).addClass('pullout-closed'); //remove from processing array if(processing.length > 0){ var i = jQuery.inArray(id, processing); if(i != -1) processing.splice(i, 1); } }, parseInt(widget.speed)); } function pow_slide(widget, direction){ var properties = new Array; properties[widget.side] = direction + '=' + widget.position + 'px'; var duration = parseInt(widget.speed); //widget.speed; jQuery('#' + widget.id).animate(properties, duration, widget.easing); } function pow_start_timer(){ for(i in pow_widgets){ var id = pow_widgets[i].id; var cookie_name = 'pow_' + id + '_timer'; var trigger_on = pow_widgets[i].trigger_on; if( 'timer' == trigger_on || 'timer_once' == trigger_on ){ //clear the cookie in case it was set for timer_once and then changed to timer if( 'timer' == trigger_on ){ eraseCookie(cookie_name); } var startTime = readCookie(cookie_name); var delay = parseInt(pow_widgets[i].timer); //console.log(startTime); if( startTime == null ){ var startTime = new Date(); createCookie(cookie_name, startTime.getTime(), 2592000); //30 days setTimeout( (function(id, cookie_name, trigger_on){ return function(){ do_pullout(id); if( 'timer_once' == trigger_on ){ createCookie(cookie_name, -1, 2592000); //30days }else{ eraseCookie(cookie_name); } } })(id, cookie_name, trigger_on), delay); }else if(startTime != -1){ var now = new Date(); var time_passed = (now.getTime() - startTime); if( time_passed < delay ){ var remaining_t = delay-time_passed; setTimeout( (function(id, cookie_name, trigger_on){ return function(){ do_pullout(id); if( 'timer_once' == trigger_on ){ createCookie(cookie_name, -1, 2592000); //30days }else{ eraseCookie(cookie_name); } } })(id, cookie_name, trigger_on), remaining_t); }else if( 3 > (time_passed-delay) ){ do_pullout(id); if( 'timer_once' == trigger_on ){ createCookie(cookie_name, -1, 2592000); //30days }else{ eraseCookie(cookie_name); } } } } } } function pow_count_pages(){ var id = pow_widgets[i].id; var cookie_name = 'pow_' + id + 'n_pages'; var num = readCookie(cookie_name); if( !num ){ var num = 1; }else{ num++; } createCookie(cookie_name, num, 3600); // 1 hour } function pow_start_page_count(){ for(i in pow_widgets){ var id = pow_widgets[i].id; var cookie_name = 'pow_' + id + 'n_pages'; var trigger_on = pow_widgets[i].trigger_on; if( 'n_pages' == trigger_on || 'n_pages_once' == trigger_on ){ //check if cookie is set var num = readCookie(cookie_name); if( !num ) var num = 0; num++; createCookie(cookie_name, num, 3600); // 1 hour if(num == pow_widgets[i].n_pages){ do_pullout(id); if('n_pages' == trigger_on ){ eraseCookie(cookie_name); } } if(num > pow_widgets[i].n_pages && 'n_pages' == trigger_on) eraseCookie(cookie_name); } } } function pow_supports_css3transform(){ var thisBody = document.body || document.documentElement, thisStyle = thisBody.style, support = thisStyle.transform !== undefined || thisStyle.WebkitTransform !== undefined || thisStyle.MozTransform !== undefined || thisStyle.MsTransform !== undefined || thisStyle.OTransform !== undefined; return support; } ////////// Cookies Functions function createCookie(name,value,seconds) { if (seconds) { var date = new Date(); date.setTime(date.getTime()+(seconds*1000)); var expires = "; expires="+date.toGMTString(); } else var expires = ""; document.cookie = name+"="+value+expires+"; path=/"; } function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); var cn = c.split("="); if(cn[0] == name) return c.substring(nameEQ.length,c.length); } return null; } function eraseCookie(name) { createCookie(name,"",-1); } } /* FILE ARCHIVED ON 14:08:28 Apr 08, 2016 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 23:10:09 Mar 01, 2026. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). */ /* playback timings (ms): captures_list: 0.571 exclusion.robots: 0.062 exclusion.robots.policy: 0.052 esindex: 0.01 cdx.remote: 46.31 LoadShardBlock: 314.002 (3) PetaboxLoader3.datanode: 283.616 (5) PetaboxLoader3.resolve: 259.976 (4) load_resource: 352.94 (2) */