Cufon.replace('#primaryMenu>ul>li>a', { fontFamily: 'LucidaSans', hover: true });
Cufon.replace('#primaryMenu span.title', { fontFamily: 'LucidaSans' });
function initPassword(oldObject, disableRevert) {
	var newObject = document.createElement('input');
	newObject.type = "password";
	if(oldObject.name) { newObject.name = oldObject.name; }
	if(oldObject.id) { newObject.id = oldObject.id; }
	if(oldObject.className) { newObject.className = oldObject.className; }
	if(oldObject.tabIndex) { newObject.tabIndex = oldObject.tabIndex; }
	newObject.initText = oldObject.value;
	newObject.style.color = "#333";
//	c2.bindEvent(newObject, 'keypress', function(event) {
//		if(!enterKey(event,'accountLoginButton')) {
//			c2.preventDefault(event);
//		}
//	});
	if(disableRevert !== true) {
	    $(newObject).bind('blur', function() {
	        if(this.value.length < 1) {
	            var textObject = document.createElement('input');
			    if(newObject.name) { textObject.name = newObject.name; }
			    if(newObject.id) { textObject.id = newObject.id; }
			    if(newObject.className) { textObject.className = newObject.className; }
	            if(newObject.tabIndex) { textObject.tabIndex = newObject.tabIndex; }
			    textObject.style.color = "#969696";
			    textObject.value = newObject.initText;
			    textObject.onfocus = function() {
				    initPassword(this);
			    };
			    setTimeout(function() {
			        newObject.parentNode.replaceChild(textObject,newObject);
                }, 10);
	        }
	    });
	}
	oldObject.parentNode.replaceChild(newObject,oldObject);
	setTimeout(function() { newObject.focus(); }, 10);
	return newObject;
}

function initPasswordEnter(oldObject,buttonid) {
	var newObject = document.createElement('input');
	newObject.type = "password";
	if(oldObject.name) { newObject.name = oldObject.name; }
	if(oldObject.id) { newObject.id = oldObject.id; }
	if(oldObject.className) { newObject.className = oldObject.className; }
	if(oldObject.tabIndex) { newObject.tabIndex = oldObject.tabIndex; }
	newObject.initText = oldObject.value;
	newObject.style.color = "#333";
	c2.bindEvent(newObject, 'keypress', function(event) {
		if(!enterKey(event,buttonid)) {
			c2.preventDefault(event);
		}
	});
	oldObject.parentNode.replaceChild(newObject,oldObject);
	setTimeout(function() { newObject.focus(); }, 10);
	return newObject;
}

function toggle_open(object) {
	$(object.parentNode).toggleClass('open');
	return false;
}

function printSpecs() {
	window.print();
	return false;
}

function createLanguageSelector() {
	$('#language').click(function(e) {
		e.preventDefault();
		var sel = $('#languageSelector');
		if(sel.css('display') == 'none') {
			var pos = c2.findElementPos(this,'page');
			sel.css('top', pos[1] + 20).css('left', pos[0]).css('width',this.offsetWidth).fadeIn('fast');
		}
		else {
			sel.fadeOut('fast');
		}
	});
}

function createPrimaryMenu() {
	var self = this;
	this.timer = null;
	this.current = null;
	this.checkActive = function(object) {
		if(!$(object).parents('li').hasClass('active')) {
			$(object).hide();
			$('body').removeClass('float');
		}
	};
	$('#primaryMenu>ul>li').hover(function() {
		var o = this;
		self.timer = setTimeout(function() { $('body').addClass('float'); $(o).addClass('active').find('ul').fadeIn('slow', function() { self.checkActive(this); }); }, 100);
	},function() {
		clearTimeout(self.timer);
		self.timer = null;
		$(this).removeClass('active').find('ul').hide();
		$('body').removeClass('float');
	}).find('>a').attr('title','').end().find('>ul>li>a').hover(function() {
		$(this).addClass('hover');
	},function() {
		$(this).removeClass('hover');
	}).attr('title','').find('img').attr('alt','');
}

function createMainMenu() {
	$('#mainMenu a.toggle, #mainMenu span.toggle').click(function() {
		var parent = $(this).parent('li');
		if(parent.hasClass('closed')) {
			parent.removeClass('closed');
		}
		else {
			parent.addClass('closed');
		}
	});
}

function createAccountLogin() {
	var self = this;
	var login = document.getElementById('accountLogin');
	var loginMenu = document.getElementById('accountLoginMenu');
	this.removeLogin = function() {
		$(loginMenu).removeClass('active');
		login.style.display = "none";
		//c2.unbindEvent(document.getElementById('txtSearchBissell'),'focus',self.removeLogin);
	};
	$(loginMenu).click(function(e) {
		e.preventDefault();
		if($(this).hasClass('active')) {
			self.removeLogin();
		}
		else {
			$(this).addClass('active');
			var pos = c2.findElementPos(this, 'globalSlide');
			login.style.display = "block";
			login.style.top = pos[1] + 17 + "px";
			login.style.right = 811 - (pos[0] + this.offsetWidth) + "px";
			//c2.bindEvent(document.getElementById('txtSearchBissell'),'focus',self.removeLogin);
		}
	});
}

function createTipBox(object) {
	var cb = new textLimit();
	cb.input = object;
	cb.remaining = document.getElementById('tipBox_remaining');
	cb.limit = 500;
	cb.settings.defaultValue = cb.input.defaultValue;
	cb.init();
}

function createCommentBox(object) {
	var cb = new textLimit();
	cb.input = object;
	cb.remaining = document.getElementById('commentBox_remaining');
	cb.limit = 500;
	cb.settings.defaultValue = cb.input.defaultValue;
	cb.init();
}

function accordian(anchor) {
	var parent = $(anchor).parents('li');
	if(parent.hasClass('open')) {
		parent.removeClass('open');
	}
	else {
		parent.addClass('open');
	}
}
function createAccordian() {
	/*var fulls = $('#accordian div.full');
	for(var x=0;x<fulls.length;x++) {
		var teaser = document.createElement('div');
		teaser.className = "teaser";
		teaser.innerHTML = fulls[x].innerHTML.truncate(120, '&hellip;');
		$(fulls[x]).after(teaser);
	}*/
	$('#accordian div.toggle a').click(function(e) {
		e.preventDefault();
		accordian(this);
	});
}

function createGlobalSlide() {
	var self = this;
	this.slide = document.getElementById('globalSlide');
	this.toggle = document.getElementById('globalMenu');
	this.open = false;
	
	this.slideUp = function() {
		$(this.slide).animate({ marginTop: "-83px" }, 500, 'swing', function() { $(self.toggle).removeClass('open'); self.open = false; });
	};
	this.slideDown = function() {
		$(this.slide).animate({ marginTop: "0px" }, 500, 'swing', function() { $(self.toggle).addClass('open'); self.open = true; });
	};
	
	$(this.toggle).click(function(e) {
		e.preventDefault();
	    $('#languageSelector').hide();
		if(self.open) {
		    $('#accountLoginMenu').removeClass('active');
		    $('#accountLogin').css('display','none');
		    //c2.unbindEvent(document.getElementById('txtSearchBissell'),'focus',self.removeLogin);
			self.slideUp();
		}
		else {
			self.slideDown();
		}
	});
}

function searchBissell(id) {
    var searchText = $("#txtSearchBissell").val();
    window.location.href = "/SearchResults.aspx?searchType=main&mode=" + id + "&searchtext=" + searchText;
    
    return false;
}

function createPLMenu() {
    // check ExpertMenu to see if its selected
	if(window.location.href.indexOf('/Expert') > 0) {
	    document.getElementById('expertMenu').className = "expertSel";
	}
	
	Cufon.replace('#plMenu a', { fontFamily: 'LucidaSans', hover: true });
	
	var ul = document.getElementById('plTabs');
	var as = ul.getElementsByTagName('a');
	var areaWidth = ul.offsetWidth;
	this.getWidth = function() {
		var width = 0;
		for(var x=0;x<as.length;x++) {
			as[x].style.paddingLeft = 0;
			as[x].style.paddingRight = 0;
			width += as[x].offsetWidth;
		}
		return width;
	};
	var gap = areaWidth - this.getWidth();
	if(gap > 0) {
		var growth = Math.ceil(gap / as.length);
		for(var x=0;x<as.length;x++) {
			gap = gap - growth;
			as[x].style.width = as[x].offsetWidth + growth + "px";
			if(gap < growth) {
				growth = gap;
			}
			if(gap === 0) {
				break;
			}
		}
	}
	$('li.selected', ul).next('li').addClass('selectedAfter');
}

function createIndexTabs() {
    // check ExpertMenu to see if its selected
	if(window.location.href.indexOf('/Expert') > 0) {
	    document.getElementById('expertMenu').className = "expertSel";
	}
	
	var ul = document.getElementById('indexTabs');
	var as = ul.getElementsByTagName('a');
	var areaWidth = ul.offsetWidth;
	this.getWidth = function() {
		var width = 0;
		for(var x=0;x<as.length;x++) {
			as[x].style.paddingLeft = 0;
			as[x].style.paddingRight = 0;
			width += as[x].offsetWidth;
		}
		return width;
	};
	var gap = areaWidth - this.getWidth();
	if(gap > 0) {
		var growth = Math.ceil(gap / as.length);
		for(var x=0;x<as.length;x++) {
			gap = gap - growth;
			as[x].style.width = as[x].offsetWidth + growth + "px";
			if(gap < growth) {
				growth = gap;
			}
			if(gap === 0) {
				break;
			}
		}
	}
	$('li.selected', ul).next('li').addClass('selectedAfter');
}

function createLoginRegisterPopup() {
	$('#loginToVote').click(function(e) {
		e.preventDefault();
		if($(this).hasClass('voting')) {
			$(this).removeClass('voting');
			$('#loginRegisterPopup').css('display','none');
		}
		else {
			$(this).addClass('voting');
			var pos = c2.findElementPos(this,'page');
			var lrp = $('#loginRegisterPopup');
			var top = pos[1] - lrp.height() - 25;
			lrp.css({
				'display': 'block',
				'top': top + 'px',
				'left': '50px'
				});
		}
	});
}

function createSideFAQ() {
	$('#sideFAQ h4').click(function() {
		$(this).parents('li').toggleClass('open');
		$('#page').toggleClass('class');
	});
}

function clickOnce(object) {
	if (object.rel != "clicked")
	{
	    object.rel = "clicked";
	    return true;
	}
    else
    {
        return false;
    }	
}

function popup() {
    $('a.popup').click(function(e) {
        e.preventDefault();
        return openWindow(this.href,'popup');
    });
}

function BlockContentLogin() {
    
    var username = document.getElementById('txtEmailAddress').value;
	var usernamedefault = document.getElementById('txtEmailAddress').defaultValue;
    var password = document.getElementById('txtPassword').value;
	var passworddefault = document.getElementById('txtPassword').defaultValue;
	
	if (username == '' || username == usernamedefault || password == '' || password == passworddefault)
    {
        return;		
    }
    
    var DTO = {};
    DTO.username = $("#txtEmailAddress").val();
    DTO.password = $("#txtPassword").val();
    
    $.ajax(
    {
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "/webservices/users.asmx/LoginUser",
        data: JSON.stringify(DTO),
        dataType: "json",
        dataFilter: function (data) { return TranslateAjaxResponse(data); },
        success: function(result, textStatus)
        {
            if(!result.ok)
            {
                alert(result.message);
            }
            else
            {
                var s=s_gi(document.getElementById('ctl00_hdnOmnitureEvent').value);
                s.linkTrackVars='eVar10,eVar12,events';
                s.linkTrackEvents='event4';
                s.events='event4';
                s.products='';
                s.eVar10='voter';           
                s.tl(this,'o','logins');            
                window.location.reload();
            }
        },
        error: function(request, status, err) {
            var errobj = eval("(" + request.responseText + ")");
            alert(errobj.Message);
        }
    });
}

function BlockContentCreateUser()
{
    var firstname = document.getElementById('txtFirstName').value;
    var firstnamedefault = document.getElementById('txtFirstName').defaultValue;
    var lastname = document.getElementById('txtLastName').value;
    var lastnamedefault = document.getElementById('txtLastName').defaultValue;
	var emailaddress = document.getElementById('txtNewEmailAddress').value;	
	var emailaddressdefault = document.getElementById('txtNewEmailAddress').defaultValue;
	var password = document.getElementById('txtNewPassword').value;
	var passworddefault = document.getElementById('txtNewPassword').defaultValue;
	var passwordconfirm = document.getElementById('txtPasswordConfirm').value;
	var passwordconfirmdefault = document.getElementById('txtPasswordConfirm').defaultValue;
	var newsletter = document.getElementById('newsletterSignup').checked;
	
	if (firstname == '' || firstname == firstnamedefault || lastname == '' || lastname == lastnamedefault || emailaddress == '' || emailaddress == emailaddressdefault || password == '' || password == passworddefault || passwordconfirm == '' || passwordconfirm == passwordconfirmdefault || password != passwordconfirm) {
        return;		
    }

    var DTO = {};
    DTO.firstName = firstname;
    DTO.lastName = lastname;
    DTO.password = password;
    DTO.email = emailaddress;
    DTO.newsletter = newsletter;

    $.ajax(
    {
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "/webservices/users.asmx/CreateUser",
        data: JSON.stringify(DTO),
        dataType: "json",
        dataFilter: function (data) { return TranslateAjaxResponse(data); },
        success: function(result, textStatus)
        {
            if(result.ok)
            {
            
                var s=s_gi(document.getElementById('ctl00_hdnOmnitureEvent').value);
                s.linkTrackVars='eVar10,eVar12,events';
                //s.linkTrackEvents='event5,event7';
                //s.events='event5,event7';
                s.products='';
                s.eVar10="voter"; //omniture user is a voter
                s.events="event5"; //omniture user registration
                s.linkTrackEvents='event5';
                if (newsletter == 'true') 
                {
                    s.events+=",event19"; //omniture user opted in
                    s.linkTrackEvents+=',event19';
                    s.linkTrackVars+='eVar29';
                    s.eVar29="MVP Account Main"; //omniture user is a voter
                }
                s.tl(this,'o','registrationsEmail');            
                window.location.reload();
            }
            else
            {
                alert(result.message);
            }
        },
        error: function(request, status, err) {
            var errobj = eval("(" + request.responseText + ")");
            alert(errobj.Message);
        }
    });    
}

function Logout() {    
    $.ajax(
    {
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "/webservices/users.asmx/LogoutUser",
        data: "{'Temp':'Testing'}",
        dataType: "json",
        dataFilter: function (data) { return TranslateAjaxResponse(data); },
        success: function(result, textStatus)
        {
            if(!result.ok)
            {
                alert(result.message);
            }
            else
            {
                window.location.reload(true);
            }
        },
        error: function(request, status, err) {
            var errobj = eval("(" + request.responseText + ")");
            alert(errobj.Message);
        }
    });
}

function checkLength(textareaid, max, outputid) {
    var text = $("#" + textareaid).val();
    var textlength = text.length;
    if (textlength > max) {
        $("#" + textareaid).val(text.substr(0,max));
        $("#" + outputid).html('0 Remaining Characters');
    }
    else {
        if ((max - textlength) == 1) {
            $("#" + outputid).html('1 Remaining Character');
        }
        else {
            $("#" + outputid).html((max - textlength) + ' Remaining Characters');
        }
    }
}

function Vote(content_id, user_id)
{
    var DTO = {};
    DTO.content_id = content_id;
    DTO.user_id = user_id;

    $.ajax(
        {
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "/webservices/Voting.asmx/Vote",
            data: JSON.stringify(DTO),
            dataType: "json",
            dataFilter: function (data) { return TranslateAjaxResponse(data); },
            success: function(result, textStatus)
            {
                if(!result.ok)
                {
                    alert(result.message);
                }
                else
                {
                
                    var s=s_gi(document.getElementById('ctl00_hdnOmnitureEvent').value);
                    s.linkTrackVars='events';
                    s.linkTrackEvents='event15';
                    s.products='';                
                    s.events="event15";
                    s.tl(this,'o','votes');                
                    window.location.reload(true);
                }
            },
            error: function(request, status, err) {
                try
                {
                    var errobj = eval("(" + request.responseText + ")");
                    alert(errobj.Message);
                }
                catch(e)
                {
                    if (request.responseText.indexOf("<title>Request timed out.</title>") >= 0)
                    {
                        alert("We're sorry; our server is extremely busy right now and is having\n" +
                                "trouble processing your request.  Please try voting again\n" +
                                "after a few minutes.  If you continue having problems, please\n" +
                                "email us:  mvp@bissell.com");
                    }
                    else
                    {
                        alert("We're sorry; an unexpected error occurred. Please try voting again\n" +
                                "in a few minutes. If you continue having problems, please\n" +
                                "email us:  mvp@bissell.com");
                    }
                }
            }
        });
}

function petReportPhoto(ContentID) 
{   
    var DTO = {};
    DTO.ContentID = ContentID;

    $.ajax(
    {    
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "/webservices/ReportPhoto.asmx/Report",
        data: JSON.stringify(DTO),
        dataType: "json",
        dataFilter: function (data) { return TranslateAjaxResponse(data); },
        success: function(result, textStatus)
        {
            alert(result.message);
        },
        error: function(request, status, err) 
        {
            $("#testimonialLoading").html('');
            try
            {
                var errobj = eval("(" + request.responseText + ")");
                alert(errobj.Message);
            }
            catch(e)
            {
                if (request.responseText.indexOf("<title>Request timed out.</title>") >= 0)
                {
                    alert("We're sorry; our server is extremely busy right now and is having\n" +
                            "trouble processing your request.  Please try reporting this pet\n" +
                            "again after a few minutes.  If you continue having problems,\n" +
                            "please email us:  mvp@bissell.com");
                }
                else
                {
                    alert("We're sorry; an unexpected error occurred. Please try reporting\n" +
                            "this pet again in a few minutes. If you continue having problems,\n" +
                            "please email us:  mvp@bissell.com");
                }
            }
        }
    });
    return false;
}

function createHomeWeek() {
    if(document.getElementById('week0')) {
        $('#homeTop').addClass('week0');
    }
}

$(document).ready(function() {

	if(document.getElementById('languageSelector')) {
		var languageSelector = new createLanguageSelector();
	}
	if(document.getElementById('primaryMenu')) {
		createPrimaryMenu();
	}
	if(document.getElementById('mainMenu')) {
		createMainMenu();
	}
	if(document.getElementById('accountLoginMenu')) {
		createAccountLogin();
	}
	if(document.getElementById('ctl00_cphRightMain_GuideTips1_txtTip')) {
		createTipBox(document.getElementById('ctl00_cphRightMain_GuideTips1_txtTip'));
	}
	if(document.getElementById('txtComment')) {
		createCommentBox(document.getElementById('txtComment'));
	}
	if(document.getElementById('accordian')) {
		createAccordian();
	}
	if(document.getElementById('plTabs')) {
		createPLMenu();
	}
	
	// UNCOMMENT AFTER BISSELL ENTERPRISE LAUNCH
	//if(document.getElementById('globalSlide')) {
	//	var globalSlide = new createGlobalSlide();
	//}
	if(document.getElementById('commentBox')) {
		createCommentBox(document.getElementById('commentBox'));
	}
	if(document.getElementById('sideFAQ')) {
		createSideFAQ();
	}
	if(document.getElementById('indexTabs')) {
		createIndexTabs();
	}
	if(document.getElementById('loginRegisterPopup')) {
		createLoginRegisterPopup();
	}
	if(document.getElementById('homeTop')) {
		createHomeWeek();
	}
	
    popup();

});

function TranslateAjaxResponse(data) {
    // This Function Is Also In /admin/js/adminScript.js
    if (data) {
    
        var result;

        if (typeof (JSON) === 'object' && typeof (JSON.parse) === 'function')
            result = JSON.parse(data);
        else
            result = eval('(' + data + ')');

        if (result.hasOwnProperty('d'))
            return result.d;
        else
            return result;
    }
    else {
        return null;
    }
}
