var navOnScreen = false;
var activeNavElement = false;
var wait = false;

window.addEvent('domready',function () {
  $(document.body).superSleight();
	 navRollover();
  handleSearch();
  handleCallback();
  handleCollapses();
});

window.addEvent('load',function() {
 handleLightboxes();
});

function handleCollapses() {
	$$('.gwCollapsableTitle').setStyle('display','block');
	$$('.gwCollapsableTitle').setStyle('cursor','pointer');
	$$('.gwCollapsableText').setStyle('display','none');
	$$('.gwCollapsableTitle').addEvent('click', function() {
		this.getParent().toggleClass('opened');
		this.getParent().getChildren('.gwCollapsableText').each(function(el) {
			if (el.getStyle('display') == "none") {
				el.setStyle('display','block');
			} else {
				el.setStyle('display','none');
			}
		});
	});
}

function handleLightboxes() {
   var gwLBoxes = new multiBox('gwLightbox', {
       overlay: new overlay(),
       showControls: false,
       showNumbers: false,
       movieWidth: 720,
       movieHeight: 430
   });

}

var searchBoxFocus = false;

function handleSearch() {
  if ($('search_box')) {
    $('search_box').setStyle('color','#c5c7c8');
    $('search_box').setStyle('font-style','italic');
    $('search_box').set('value','Search gradwell.com');
    
    $('search_box').addEvent('focus',function() {
      $('search_box').setStyle('color','inherit');
      $('search_box').setStyle('font-style','inherit');
      if (searchBoxFocus) return;
      $('search_box').set('value','');
      searchBoxFocus = true;
    });
  }
}

function handleCallback() {
	if ($('callback_icon')) {
		$('callback_icon').addEvent('click',openCallback);
	}
	if ($('callback_close_button')) {
		$('callback_close_button').addEvent('click',closeCallback);
	}
}

function openCallback(e) {
	e.stopPropagation();
	e.preventDefault();
	$('callback_float').setStyle('display','block');
	$('callback_float').tween('height','280px');
}

function closeCallback() {
	$('callback_float').setStyle('display','none');
	$('callback_float').tween('height','0px');
}

function clearExtendedNav() {
	if (activeNavElement) {
		if ($(activeNavElement).hasClass("active")) {
			$(activeNavElement).getFirst("a").setStyle('background-position','0 -104px');
		} else {
			$(activeNavElement).getFirst("a").setStyle('background-position','0 0');
		}
	}
	$$('div.extended_nav_row').each(function(ele, index) {
		ele.setStyle('display','none');
	});
}

function displayNav(pad,width) {
	wait = true;
	$(activeNavElement).getFirst("a").setStyle('background-position','0 -52px');
	if (typeof(pad) == "number") $('extended_nav').setStyle('marginLeft',pad);
	if (typeof(width) == "number") $('extended_nav').setStyle('width',width);
	$('extended_nav').setStyle('display','block');
	
}

function hideNav() {
	wait = false;
	window.setTimeout(removeNav,25);
}

function removeNav() {
	if (wait === false) {
		if (activeNavElement) {
			if ($(activeNavElement).hasClass("active")) {
				$(activeNavElement).getFirst("a").setStyle('background-position','0 -104px');
			} else {
				$(activeNavElement).getFirst("a").setStyle('background-position','0 0');
			}
		}
		$('extended_nav').setStyle('display','none');
	}
}

function navRollover() {
	$('nav_phoneservices').addEvent('mouseover',function() {
		clearExtendedNav();
		activeNavElement = $('nav_phoneservices');
		displayNav(64,660);
		$('bps_ext_nav').setStyle('display','block');
		$('nav_phoneservices').addEvent('mouseout',function() {
			hideNav();
		})
	});
	
	$('nav_broadband').addEvent('mouseover',function() {
		clearExtendedNav();
		activeNavElement = $('nav_broadband');
		displayNav(261,520);
		$('bi_ext_nav').setStyle('display','block');
		$('nav_broadband').addEvent('mouseout',function() {
			hideNav();
		})
	});
	
	$('nav_email-web').addEvent('mouseover',function() {
		clearExtendedNav();
		activeNavElement = $('nav_email-web');
		displayNav(420,520);
		$('ewh_ext_nav').setStyle('display','block');
		$('nav_email-web').addEvent('mouseout',function() {
			hideNav();
		})
	});
	
	$('extended_nav').getElements('div').addEvent('mouseover',function() {
		displayNav();
	});
	
	$('extended_nav').getElements('div').addEvent('mouseout',function() {
		hideNav();
	});
	
	$('extended_nav').addEvent('mouseover',function() {
		displayNav();
	});
	
	$('extended_nav').addEvent('mouseout',function() {
		hideNav();
	});
}


String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}

Element.implement({
    superSleight: function(settings) {
        var settings = $H(settings);
        settings.extend({
            imgs: true,
            backgrounds: true,
            shim: '/images/png_fix_blank.gif',
            apply_positioning: true
        });

            if (Browser.Engine.trident && Browser.Engine.version == 4) {
            		$('body').setStyle('background','none');
            		$('body').setStyle('background-color','#fff');
                $(this).getElements('*').each(function(elem) {
                    // background pngs
                    if (settings.backgrounds && elem.getStyle('background-image').match(/\.png/i) !== null) {
                        var bg = elem.getStyle('background-image');
                        var src = bg.substring(5, bg.length - 2);
                        var mode = (elem.getStyle('background-repeat') == 'no-repeat' ? 'crop': 'scale');
                        var styles = {
                            'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='" + mode + "')",
                            'background-image': 'url(' + settings.shim + ')'
                        };
                        elem.setStyles(styles);
                    }

                    // image elements
                    if (settings.imgs && elem.match('img[src$=png]')) {
                        var elem_size = elem.getSize();
                        var styles = {
                            'width': elem_size.x + 'px',
                            'height': elem_size.y + 'px',
                            'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + elem.getProperty('src') + "', sizingMethod='scale')"
                        };
                        elem.setStyles(styles).setProperty('src', settings.shim);
                    }
                    // apply position to 'active' elements
                    if (settings.applyPositioning && ['a', 'input'].contains(elem.get('tag')) && elem.getStyle('position') === '') {
                        elem.setStyle('position', 'relative');
                    }
                });
            }
    }
});