window.addEvent('domready', function() {
    // generate overlay to prevent background interaction hovers/clicks
    create_overlay();
    // figuring out the document viewport's height/width for centering purposes below
    var docWidth = $(document.body).getCoordinates().width;

    $$('.bin_content').each(function(el){
        el.inject(document.body,'bottom');
    });

    var binWidth = 706;
    var binOffsetLeft = ((docWidth - binWidth)/2) + 123;
    $$('.bin_link').addEvent('click', function(e) {
        new Event(e).stop();
        var linkString = e.target.getProperty('href');
        var upcCode = linkString.substr(linkString.indexOf('upc=')+4);
        // we're figuring out the height/width of the pop-ups to center them
        $('bin_content_'+upcCode).setStyles({'display':'block','left':binOffsetLeft+'px','top':'123px','visibility':'visible'});
        $('page').focus();
        overlayMask.setStyle('display', 'block');
    });

    $$('.button_close').addEvent('click', function(e) {
        new Event(e).stop();
        $$('.bin_content').setStyles({'display':'none','visibility':'hidden'});
        $('staf_errors').setStyle('display', 'none');
        $$('input').removeClass('error');
        $('error_list').set('html', '');
        overlayMask.setStyle('display', 'none');
    });

    $$('form').getElements('.bin_zipcode').each(function(el){
            var zipTxt = el .get('value');
            el.addEvents({
            'focus': function()
            {
                if (this.value.match(/[a-z]/i)) this.value = "";
            },
            'blur': function()
            {
                if (this.value == "") this.value = zipTxt;
            }
        });
    });

    if ($(document.body).getElement('.staf_link'))
    {
        var stafWidth = $('staf_body').getStyle('width').toInt();
        var stafOffsetLeft = ((docWidth - stafWidth)/2) + 129;
        var stafOffsetTop = 163;
        if($$('body')[0].hasClass('products') || $$('body')[0].hasClass('razor_finder')) stafOffsetTop = 137;
        $('staf_container').setStyles({'left':stafOffsetLeft+'px','margin':0,'top': stafOffsetTop+'px'});

        $$('.staf_link').addEvent('click', function(e) {
            e = new Event(e).stop();
            $('staf_container').addClass('show').inject(document.body);
            overlayMask.setStyle('display', 'block');
        });

        $$('.jsfallback').setStyle('display','none');
        $$('.jsonly').setStyle('display','block');

        $('staf_container').inject(document.body,'bottom');

        $('staf_container').getElements('label').each(function(el){
            if (el.id != 'friendCheckBoxLabel') {
                el.setStyle('position','absolute');
                if(el.id == 'label_first_name') {
                    if(Browser.Engine.trident){
                        el.setStyle('margin-top','6px');
                    }else{
                        el.setStyle('margin-top','5px');
                    }
                }else if(el.id == 'label_email') {
                    if(Browser.Engine.trident){
                        el.setStyle('margin-top','4px');
                    }else{
                        el.setStyle('margin-top','3px');
                    }
                }else if(el.id == 'label_friend_first_name') {
                    el.setStyle('margin-top','3px');
                }else if(el.id == 'label_friend_first_name') {
                    el.setStyle('margin-top','3px');
                }else{
                    el.setStyle('margin-top','4px')
                }

                el.addEvent('click', function(e){
                        el.setStyle('visibility', 'hidden');
                });
            }
        });

        $('staf_container').getElements('input').each(function(el){
            if (el.id != 'friendCheckBox') {
                el.setStyles({'margin-top': '2px','margin-bottom': '2px'});
                el.addEvents({
                    'focus': function(e) {
                        el.getPrevious('label').setStyle('visibility', 'hidden');
                    },
                    'blur': function(e) {
                        if (!(el.value.length > 0)) el.getPrevious('label').setStyle('visibility', 'visible');
                    }
                });
            }
        });

        $('staf_container').getElements('input').each(function(el){
                if(el.value != ''){
                    if($('label_'+el.id) != null){
                        $('label_'+el.id).setStyle('visibility', 'hidden');
                    }
                }
        });

        $$('.button_close','.link_close').addEvent('click', function(e) {
            e = new Event(e).stop();
            $('staf_container').removeClass('show');
            if ($('staf_body').hasClass('confirm')) $('staf_body').removeClass('confirm');
            if ($('staf_body').hasClass('thankyou')) $('staf_body').removeClass('thankyou');
            if ($('staf_body_bg').hasClass('confirm')) $('staf_body_bg').removeClass('confirm');
            if ($('staf_body_bg').hasClass('thankyou')) $('staf_body_bg').removeClass('thankyou');
            if ($('staf_container').hasClass('confirm')) $('staf_container').removeClass('confirm');
            if ($('staf_container').hasClass('thankyou')) $('staf_container').removeClass('thankyou');
            if ($('btm_corners').hasClass('confirm')) $('btm_corners').removeClass('confirm');
            if ($('btm_corners').hasClass('thankyou')) $('btm_corners').removeClass('thankyou');
            if ($('friendCheckBoxLabel') != null ) $('friendCheckBoxLabel').removeClass('error');
            if ($('friendCheckBox') != null && $('friendCheckBox').checked) $('friendCheckBox').checked=false;
			//check if underage/Maine18 is active
			if($('underageNotice').getStyle('display') == 'none'){
				$('friend_first_name').value = '';
				$('label_friend_first_name').setStyle('visibility', 'visible');
				$('friend_email').value = '';
				$('label_friend_email').setStyle('visibility', 'visible');
			}
            overlayMask.setStyle('display', 'none');
        });
//check if underage/Maine18 is active
if($('underageNotice').getStyle('display') == 'none'){
        $('send_another').addEvent('click', function(e) {
            e = new Event(e).stop();
            $('friend_first_name').value = '';
            $('friend_email').value = '';
            $('label_friend_first_name').setStyle('visibility', 'visible');
            $('label_friend_email').setStyle('visibility', 'visible');
            $('staf_content_wrapper').removeClass('thankyou');
            $('staf_body').removeClass('thankyou');
            $('staf_body_bg').removeClass('thankyou');
            $('staf_container').removeClass('thankyou');
            $('btm_corners').removeClass('thankyou');
            if($('friendCheckBoxLabel') != null){
                $('friendCheckBoxLabel').removeClass('error');
                if($('friendCheckBox').checked){
                    $('friendCheckBox').checked=false;
                }
            }
        });

        $('js_staf_submit').addEvent('click', function(e) {
            $('staf_preview').set('value','Send Email');
            $('staf_submit').set('value','Send Email');
            e = new Event(e).stop();
            sendSTAFdata();
        });

        $('js_staf_preview').setStyle('display','inline'); // ie6 bugfix
        $('js_staf_preview').addEvent('click', function(e) {
            $('staf_preview').set('value','Preview');
            $('staf_submit').set('value','Preview');
            e = new Event(e).stop();
            sendSTAFdata('preview');
        });

        $('edit_email').addEvent('click', function(e) {
            e = new Event(e).stop();
            $('staf_content_wrapper').removeClass('confirm');
            $('staf_body').removeClass('confirm');
            $('staf_body_bg').removeClass('confirm');
            $('staf_container').removeClass('confirm');
            $('btm_corners').removeClass('confirm');
        });

        $('js_staf_goback').addEvent('click', function(e) {
            e = new Event(e).stop();
            $('staf_content_wrapper').removeClass('confirm');
            $('staf_body').removeClass('confirm');
            $('staf_body_bg').removeClass('confirm');
            $('staf_container').removeClass('confirm');
            $('btm_corners').removeClass('confirm');
        });

        $('confirm_email').addEvent('click', function(e) {
            e = new Event(e).stop();
            $('staf_content_wrapper').removeClass('confirm').addClass('thankyou');
            $('staf_body').removeClass('confirm').addClass('thankyou');
            $('staf_body_bg').removeClass('confirm').addClass('thankyou');
            $('staf_container').removeClass('confirm').addClass('thankyou');
            $('btm_corners').removeClass('confirm').addClass('thankyou');
        });

        $('js_staf_confirm_submit').addEvent('click', function(e) {
            $('staf_preview').set('value','Send Email');
            $('staf_submit').set('value','Send Email');
            e = new Event(e).stop();
            sendSTAFdata();
        });
}
//end check if underage/Maine18 is active
    }

    if($('product_nodes')){
        $('product_nodes').getElements('a').each(function(el, i){
            el.addEvent('click', function(e){
                new Event(e).stop();
                showOverlay(i);
            });
        });
        $('product_description').getElements('a.node').each(function(el, i){
            el.addEvent('click', function(e){
                new Event(e).stop();
                var elClasses = el.get('class').split(' ');
                for(var i=1;i<elClasses.length;i++){
                    if(elClasses[i].contains('node_')){
                        var nodeNumSplit = elClasses[i].split('_');
                        var nodeNum = nodeNumSplit[1];
                    }
                }
                //need to remove one from to make zerobase array
                showOverlay(nodeNum-1);
            });
        });
        $$('.overlays_close').addEvent('click', function(e) {
            new Event(e).stop();
            $('overlays').setStyle('display','none');
            $$('#overlays .overlay').setStyle('visibility', 'hidden');
            $('mask').setStyle('display', 'none');
        });
    }

    $$('a.tab_button').each(function(el, i){
        el.addEvent('click', function(e){
            new Event(e).stop();
            show_tab(i,el.id);
        });
    });
	
	// added for bazaarvoice tab on product pages
	var tabOpen = getQuerystring('open');
	if(tabOpen != ''){
		if(tabOpen == 'reviews'){
			$$('a.tab_button').each(function(el, i){
				if(el.id == 'bvLink'){
					show_tab(i,el.id);
				}
			});
	    }
	}

    //added for the case where staf overlay isFinite open on page using the querystring param action.
    if($('staf_container') != null && $('staf_container').hasClass('show')) overlayMask.setStyle('display', 'block');

});
window.addEvent('domready', function() {
    //used to anchor down to ratings and reviews section within the Tabs
    //new SmoothScroll({ duration:1400 }, window);
    var el = false;
    if(window.location.search.substring(1).contains('open=reviews') && ($('invL') == null) ){
        el = true;
    }
    if(el) {
        var scroll = new Fx.Scroll(window, { wait: false, duration: 1400, transition: Fx.Transitions.Quad.easeInOut });
        scroll.toElement($('bottom'));
    }
});

function show_tab(num,id)
{
    $$('.content_tab').removeClass('content_tab_on');
    $$('.tab_button').removeClass('tab_button_on');
    $$('.tab_button')[num].addClass('tab_button_on');
    $$('.content_tab')[num].addClass('content_tab_on');
	if(id == 'bvLink'){
		$('bottom').setStyle('height','600px');
		$('review_content').setStyle('display','block');
	}else{
		if($('review_content') != null){
			$('review_content').setStyle('display','none');
		}
		$('bottom').setStyle('height','240px');
	}
}

function sendSTAFdata(action)
{
    var form = $('form').getFirst();
    form.set('send', {onComplete: function(response) {
        var data = JSON.decode(response);
        var errorCount = 0;
        if($('updatedMessage').get('value').length >= 500){
            errorCount++;
            $('message').addClass('error');
            $('messageLengthError').setStyle('display', 'block');
        }else{
            $('messageLengthError').setStyle('display', 'none');
        }
    if (!data.result || errorCount > 0)
        {
            $('staf_body').removeClass('confirm');
            $('staf_body_bg').removeClass('confirm');
            $('staf_container').removeClass('confirm');
            $('btm_corners').removeClass('confirm');
            $('error_list').set('html','');
            if (data.firstName) {
                $('first_name').addClass('error');
                var errorDiv = new Element('div',{
                  'html':data.firstName
                }).inject($('error_list'));
            }else{
                $('first_name').removeClass('error');
            }
			if ($('staf_state') != null){
				if (data.state) {
					$('staf_state').addClass('error');
					var errorDiv = new Element('div',{
					  'html':data.state
					}).inject($('error_list'));
				}else{
					$('staf_state').removeClass('error');
				}
			}
			if ($('dob_month') != null){
				if (data.birth_date) {
					$('dob_month').addClass('error');
					$('dob_day').addClass('error');
					$('dob_year').addClass('error');
					var errorDiv = new Element('div',{
					  'html':data.birth_date
					}).inject($('error_list'));
				}else{
					$('dob_month').removeClass('error');
					$('dob_day').removeClass('error');
					$('dob_year').removeClass('error');
				}
			}
            //not sure this condition exisit anymore
			if (data.birth_date != null){
				if (data.birthDate) {
					var errorDiv = new Element('div',{
					  'html':data.birthDate
					}).inject($('error_list'));
				}else{
				}
			}
            if (data.email){
                $('email').addClass('error');
                var errorDiv = new Element('div',{
                  'html':data.email
                }).inject($('error_list'));
            }else{
                $('email').removeClass('error');
            }
            if (data.friendsFirstName){
                $('friend_first_name').addClass('error');
                var errorDiv = new Element('div',{
                  'html':data.friendsFirstName
                }).inject($('error_list'));
            }else{
                $('friend_first_name').removeClass('error');
            }
            if (data.friendsEmail){
                $('friend_email').addClass('error');
                var errorDiv = new Element('div',{
                  'html':data.friendsEmail
                }).inject($('error_list'));
            }else{
                $('friend_email').removeClass('error');
            }
            if (data.message){
                $('message').addClass('error');
                var errorDiv = new Element('div',{
                  'html':data.message
                }).inject($('error_list'));
            }else{
                $('message').removeClass('error');
            }
            if (data.friendOptIn){
                $('friendOptInWrapper').addClass('error');
                var errorDiv = new Element('div',{
                  'html':data.friendOptIn
                }).inject($('error_list'));
            }else{
                if($('friendOptInWrapper') != null) {
                    $('friendOptInWrapper').removeClass('error');
                }
            }

            $('staf_errors').setStyle('display', 'block');
        }
		//checking if underage is true for under 13 or Maine18.
		else if (data.result == 'underage') {
			var noticeText = $('underageNotice').innerHTML;
			$('form').empty();
			var noticeElement = new Element('div',{
				  'id': 'underageNotice',
                  'html': noticeText,
				  'styles': {
						'display': 'block'
				  }
                }).inject($('form'));
		}
		//end checking if underage is true for under 13 or Maine18.
        else if (data.result == "success")
        {
            if(action == 'preview'){
                $('sample_text').set('html',$('updatedMessage').get('value'));
                if ($('friend_first_name').value != '') { $('previewFriendsFirstName').innerHTML = $('friend_first_name').value;}
                if ($('first_name').value != '') { $('previewFirstName').innerHTML = $('first_name').value;}
                $('staf_content_wrapper').addClass('confirm');
                $('staf_body').addClass('confirm');
                $('staf_body_bg').addClass('confirm');
                $('staf_container').addClass('confirm');
                $('btm_corners').addClass('confirm');
                $('staf_errors').setStyle('display', 'none');
                $('message').removeClass('error');
                $$('div.form_block input').removeClass('error');
                    if($('friendOptInWrapper') != null) {
                        $('friendOptInWrapper').removeClass('error');
                    }
                    if($('staf_state') != null) {
                        $('staf_state').removeClass('error');
                    }
                    if($('dob_month') != null) {
                        $('dob_month').removeClass('error');
                        $('dob_day').removeClass('error');
                        $('dob_year').removeClass('error');
                    }
                }else{
                $('staf_content_wrapper').removeClass('confirm').addClass('thankyou');
                $('staf_body').removeClass('confirm').addClass('thankyou');
                $('staf_body_bg').removeClass('confirm').addClass('thankyou');
                $('staf_container').removeClass('confirm').addClass('thankyou');
                $('btm_corners').removeClass('confirm').addClass('thankyou');
                $('staf_errors').setStyle('display', 'none');
                $('message').removeClass('error');
                    if($('friendOptInWrapper') != null) {
                        $('friendOptInWrapper').removeClass('error');
                    }
                    if($('staf_state') != null) {
                        $('staf_state').removeClass('error');
                    }
                    if($('dob_month') != null) {
                        $('dob_month').removeClass('error');
                        $('dob_day').removeClass('error');
                        $('dob_year').removeClass('error');
                    }                
                $$('div.form_block input').removeClass('error');
                $('thankyouFriendsFirstName').set('html', $('friend_first_name').get('value'));
                pageTracker._trackPageview($('staf_thankyou_track').get('html'));
            }
        }
    }});

    form.send('/'+locale+'/services/SendToAFriendAjax.do');
}

function showOverlay(num)
{
    $('mask').setStyle('display', 'block');
    var ol = $$('#overlays .overlay');
    ol.setStyle('visibility', 'hidden');
    ol[num].setStyle('visibility', 'visible');
    $('overlays').setStyle('display','block');

    var flashObj = $('flash_content_'+(num+1));
    if( flashObj != 'undefined' && flashObj != null) {
        try{
            getFlashMovie(flashObj.id).replay();
        }catch(err){
            //console.log(err)
        }
    }
}

function updateMessage(id)
{
    $('updatedMessage').set('value', id.value.replace(/(<([^>]+)>)/ig,""));
}

function create_overlay()
{
    var docWidth = $(document.body).getScrollSize().x;
    var docHeight = $(document.body).getScrollSize().y;
    var domainCheck = '';
    var bvParam = '';
    if($('bvLink') != null) {
        bvParam = 'bv=t&';
    }
    if(window.location.pathname.contains('products') || window.location.pathname.contains('satin_care') || window.location.pathname.contains('razor_finder') || window.location.pathname.contains('tips_and_faqs')) domainCheck = '?'+bvParam+'h='+docHeight+'&w='+docWidth;
    overlayMask = new Element   ('iframe', {
        'id': 'mask',
        'src': '/global/blank.html' + domainCheck,
        'frameborder': '0',
        'allowTransparency': 'true',
        'scrolling': 'no',
        'styles': {
            'position':'absolute',
            'display': 'none',
            'z-index': '9998',
            'left': '0px',
            'top': '0px',
            'width': docWidth+'px',
            'height': docHeight+'px',
            'background-color': 'transparent',
            'filter': 'chroma(color="#FFFFFF")'
        }
    });

    overlayMask.inject(document.body);
}

function close_overlayMask()
{
	if ($$('.bin_content')) $$('.bin_content').setStyles({'display':'none','visibility':'hidden'});
	if ($('staf_container')) $('staf_container').removeClass('show');
    if($('staf_body') != null){ 
       if ($('staf_body').hasClass('confirm')) $('staf_body').removeClass('confirm');
       if ($('staf_body').hasClass('thankyou')) $('staf_body').removeClass('thankyou');
    }
    if($('staf_body_bg') != null){
        if ($('staf_body_bg').hasClass('confirm')) $('staf_body_bg').removeClass('confirm');
        if ($('staf_body_bg').hasClass('thankyou')) $('staf_body_bg').removeClass('thankyou');
    }
	if (typeof hideOverlay =='function') hideOverlay();
	if ($('overlays')) $('overlays').setStyle('display','none');
	if ($$('#overlays .overlay')) $$('#overlays .overlay').setStyle('visibility', 'hidden');
	overlayMask.setStyle('display', 'none');
}

function getFlashMovie(movieName) {
    var isIE = navigator.appName.indexOf("Microsoft") != -1;
    return (isIE) ? window[movieName] : document[movieName];
}
function getQuerystring(key, default_)

{
  if (default_==null) default_="";
  key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
  var qs = regex.exec(window.location.href);
  if(qs == null)
    return default_;
  else
    return qs[1];
}

function IsNumeric(strString)
{
	if(!/\D/.test(strString)) return true;//IF NUMBER
	else if(/^\d+\.\d+$/.test(strString)) return true;//IF A DECIMAL NUMBER HAVING AN INTEGER ON EITHER SIDE OF THE DOT(.)
	else return false;
}