﻿//REPLACE DEFAULT TEXT IN INPUT BOXES

    function ClearField(FieldToClear,DefaultText)
	{
		if(FieldToClear.value == DefaultText)
		{
			FieldToClear.value = "";
		}//end if
	}//end ClearField()
	
	function ReplaceField(FieldToClear,DefaultText)
	{
		if(FieldToClear.value == "")
		{
			FieldToClear.value = DefaultText;
		}//end if
	}//end ClearField()


// GLOBAL SCRIPTS INCLUDING 
// OPENING LINKS IN A NEW WINDOW
// REPLACING FLASH FOR VALIDATION


/*
JSTarget function by Roger Johansson, www.456bereastreet.com
*/
var JSTarget = {
	init: function(att,val,warning) {
		if (document.getElementById && document.createElement && document.appendChild) {
			var strAtt = ((typeof att == 'undefined') || (att == null)) ? 'class' : att;
			var strVal = ((typeof val == 'undefined') || (val == null)) ? 'non-html' : val;
			var strWarning = ((typeof warning == 'undefined') || (warning == null)) ? '' : warning;
			var oWarning;
			var arrLinks = document.getElementsByTagName('a');
			var oLink;
			var oRegExp = new RegExp("(^|\\s)" + strVal + "(\\s|$)");
			for (var i = 0; i < arrLinks.length; i++) {
				oLink = arrLinks[i];
				if ((strAtt == 'class') && (oRegExp.test(oLink.className)) || (oRegExp.test(oLink.getAttribute(strAtt)))) {
					oWarning = document.createElement("em");
					oWarning.appendChild(document.createTextNode(strWarning));
					oLink.appendChild(oWarning);
					oLink.onclick = JSTarget.openWin;
				}
			}
			oWarning = null;
		}
	},
	openWin: function(e) {
		var event = (!e) ? window.event : e;
		if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return true;
		else {
		    var oWin = window.open(this.getAttribute('href'), '_blank');
			if (oWin) {
				if (oWin.focus) oWin.focus();
				return false;
			}
			oWin = null;
			return true;
		}
	},
	/*
	addEvent function from http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html
	*/
	addEvent: function(obj, type, fn) {
		if (obj.addEventListener)
			obj.addEventListener(type, fn, false);
		else if (obj.attachEvent) {
			obj["e"+type+fn] = fn;
			obj[type+fn] = function() {obj["e"+type+fn]( window.event );}
			obj.attachEvent("on"+type, obj[type+fn]);
		}
	}
};
JSTarget.addEvent(window, 'load', function(){JSTarget.init("rel","external","");});





/**

 * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/

 *

 * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:

 * http://www.opensource.org/licenses/mit-license.php

 *

 */

if(typeof deconcept == "undefined") var deconcept = new Object();

if(typeof deconcept.util == "undefined") deconcept.util = new Object();

if(typeof deconcept.SWFObjectUtil == "undefined") deconcept.SWFObjectUtil = new Object();

deconcept.SWFObject = function(swf, id, w, h, ver, c, quality, xiRedirectUrl, redirectUrl, detectKey) {

	if (!document.getElementById) { return; }

	this.DETECT_KEY = detectKey ? detectKey : 'detectflash';

	this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY);

	this.params = new Object();

	this.variables = new Object();

	this.attributes = new Array();

	if(swf) { this.setAttribute('swf', swf); }

	if(id) { this.setAttribute('id', id); }

	if(w) { this.setAttribute('width', w); }

	if(h) { this.setAttribute('height', h); }

	if(ver) { this.setAttribute('version', new deconcept.PlayerVersion(ver.toString().split("."))); }

	this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion();

	if (!window.opera && document.all && this.installedVer.major > 7) {

		// only add the onunload cleanup if the Flash Player version supports External Interface and we are in IE

		deconcept.SWFObject.doPrepUnload = true;

	}

	if(c) { this.addParam('bgcolor', c); }

	var q = quality ? quality : 'high';

	this.addParam('quality', q);

	this.setAttribute('useExpressInstall', false);

	this.setAttribute('doExpressInstall', false);

	var xir = (xiRedirectUrl) ? xiRedirectUrl : window.location;

	this.setAttribute('xiRedirectUrl', xir);

	this.setAttribute('redirectUrl', '');

	if(redirectUrl) { this.setAttribute('redirectUrl', redirectUrl); }

}

deconcept.SWFObject.prototype = {

	useExpressInstall: function(path) {

		this.xiSWFPath = !path ? "expressinstall.swf" : path;

		this.setAttribute('useExpressInstall', true);

	},

	setAttribute: function(name, value){

		this.attributes[name] = value;

	},

	getAttribute: function(name){

		return this.attributes[name];

	},

	addParam: function(name, value){

		this.params[name] = value;

	},

	getParams: function(){

		return this.params;

	},

	addVariable: function(name, value){

		this.variables[name] = value;

	},

	getVariable: function(name){

		return this.variables[name];

	},

	getVariables: function(){

		return this.variables;

	},

	getVariablePairs: function(){

		var variablePairs = new Array();

		var key;

		var variables = this.getVariables();

		for(key in variables){

			variablePairs[variablePairs.length] = key +"="+ variables[key];

		}

		return variablePairs;

	},

	getSWFHTML: function() {

		var swfNode = "";

		if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture

			if (this.getAttribute("doExpressInstall")) {

				this.addVariable("MMplayerType", "PlugIn");

				this.setAttribute('swf', this.xiSWFPath);

			}

			swfNode = '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ this.getAttribute('style') +'"';

			swfNode += ' id="'+ this.getAttribute('id') +'" name="'+ this.getAttribute('id') +'" ';

			var params = this.getParams();

			 for(var key in params){ swfNode += [key] +'="'+ params[key] +'" '; }

			var pairs = this.getVariablePairs().join("&");

			 if (pairs.length > 0){ swfNode += 'flashvars="'+ pairs +'"'; }

			swfNode += '/>';

		} else { // PC IE

			if (this.getAttribute("doExpressInstall")) {

				this.addVariable("MMplayerType", "ActiveX");

				this.setAttribute('swf', this.xiSWFPath);

			}

			swfNode = '<object id="'+ this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ this.getAttribute('style') +'">';

			swfNode += '<param name="movie" value="'+ this.getAttribute('swf') +'" />';

			var params = this.getParams();

			for(var key in params) {

			 swfNode += '<param name="'+ key +'" value="'+ params[key] +'" />';

			}

			var pairs = this.getVariablePairs().join("&");

			if(pairs.length > 0) {swfNode += '<param name="flashvars" value="'+ pairs +'" />';}

			swfNode += "</object>";

		}

		return swfNode;

	},

	write: function(elementId){

		if(this.getAttribute('useExpressInstall')) {

			// check to see if we need to do an express install

			var expressInstallReqVer = new deconcept.PlayerVersion([6,0,65]);

			if (this.installedVer.versionIsValid(expressInstallReqVer) && !this.installedVer.versionIsValid(this.getAttribute('version'))) {

				this.setAttribute('doExpressInstall', true);

				this.addVariable("MMredirectURL", escape(this.getAttribute('xiRedirectUrl')));

				document.title = document.title.slice(0, 47) + " - Flash Player Installation";

				this.addVariable("MMdoctitle", document.title);

			}

		}

		if(this.skipDetect || this.getAttribute('doExpressInstall') || this.installedVer.versionIsValid(this.getAttribute('version'))){

			var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId;

			n.innerHTML = this.getSWFHTML();

			return true;

		}else{

			if(this.getAttribute('redirectUrl') != "") {

				document.location.replace(this.getAttribute('redirectUrl'));

			}

		}

		return false;

	}

}



/* ---- detection functions ---- */

deconcept.SWFObjectUtil.getPlayerVersion = function(){

	var PlayerVersion = new deconcept.PlayerVersion([0,0,0]);

	if(navigator.plugins && navigator.mimeTypes.length){

		var x = navigator.plugins["Shockwave Flash"];

		if(x && x.description) {

			PlayerVersion = new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));

		}

	}else if (navigator.userAgent && navigator.userAgent.indexOf("Windows CE") >= 0){ // if Windows CE

		var axo = 1;

		var counter = 3;

		while(axo) {

			try {

				counter++;

				axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+ counter);

//				document.write("player v: "+ counter);

				PlayerVersion = new deconcept.PlayerVersion([counter,0,0]);

			} catch (e) {

				axo = null;

			}

		}

	} else { // Win IE (non mobile)

		// do minor version lookup in IE, but avoid fp6 crashing issues

		// see http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/

		try{

			var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");

		}catch(e){

			try {

				var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");

				PlayerVersion = new deconcept.PlayerVersion([6,0,21]);

				axo.AllowScriptAccess = "always"; // error if player version < 6.0.47 (thanks to Michael Williams @ Adobe for this code)

			} catch(e) {

				if (PlayerVersion.major == 6) {

					return PlayerVersion;

				}

			}

			try {

				axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");

			} catch(e) {}

		}

		if (axo != null) {

			PlayerVersion = new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));

		}

	}

	return PlayerVersion;

}

deconcept.PlayerVersion = function(arrVersion){

	this.major = arrVersion[0] != null ? parseInt(arrVersion[0]) : 0;

	this.minor = arrVersion[1] != null ? parseInt(arrVersion[1]) : 0;

	this.rev = arrVersion[2] != null ? parseInt(arrVersion[2]) : 0;

}

deconcept.PlayerVersion.prototype.versionIsValid = function(fv){

	if(this.major < fv.major) return false;

	if(this.major > fv.major) return true;

	if(this.minor < fv.minor) return false;

	if(this.minor > fv.minor) return true;

	if(this.rev < fv.rev) return false;

	return true;

}

/* ---- get value of query string param ---- */

deconcept.util = {

	getRequestParameter: function(param) {

		var q = document.location.search || document.location.hash;

		if (param == null) { return q; }

		if(q) {

			var pairs = q.substring(1).split("&");

			for (var i=0; i < pairs.length; i++) {

				if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {

					return pairs[i].substring((pairs[i].indexOf("=")+1));

				}

			}

		}

		return "";

	}

}

/* fix for video streaming bug */

deconcept.SWFObjectUtil.cleanupSWFs = function() {

	var objects = document.getElementsByTagName("OBJECT");

	for (var i = objects.length - 1; i >= 0; i--) {

		objects[i].style.display = 'none';

		for (var x in objects[i]) {

			if (typeof objects[i][x] == 'function') {

				objects[i][x] = function(){};

			}

		}

	}

}

// fixes bug in some fp9 versions see http://blog.deconcept.com/2006/07/28/swfobject-143-released/

if (deconcept.SWFObject.doPrepUnload) {

	if (!deconcept.unloadSet) {

		deconcept.SWFObjectUtil.prepUnload = function() {

			__flash_unloadHandler = function(){};

			__flash_savedUnloadHandler = function(){};

			window.attachEvent("onunload", deconcept.SWFObjectUtil.cleanupSWFs);

		}

		window.attachEvent("onbeforeunload", deconcept.SWFObjectUtil.prepUnload);

		deconcept.unloadSet = true;

	}

}

/* add document.getElementById if needed (mobile IE < 5) */

if (!document.getElementById && document.all) { document.getElementById = function(id) { return document.all[id]; }}



/* add some aliases for ease of use/backwards compatibility */

var getQueryParamValue = deconcept.util.getRequestParameter;

var FlashObject = deconcept.SWFObject; // for legacy support

var SWFObject = deconcept.SWFObject;





//  Functionality for displaying popup overlays

$(function() {

    $('.pulldown').hide();


    $('.pulldown-handle').click(function() {
        var drawer = '#' + this.parentNode.id + '-pulldown';
        $('.pulldown:visible').slideUp(200); //close any open drawers
        $('div.arrow').removeClass('arrowon');
        $('div.title').removeClass('red');
        //if this drawer is closed, open it. if it was open, don't reopen it.
        if ($(drawer + ':visible').length == 0) {
            $(drawer).slideDown(200);
            var arrow_img = '#' + this.parentNode.id + '-arrow';
            var title = '#' + this.parentNode.id + '-title';
            $(arrow_img).addClass('arrowon');
            $(title).addClass('red');
        }

        return false;
    });


    $('img.closebutton').click(function() {
        var holder = '#' + this.parentNode.parentNode.parentNode.id;
        $(holder).fadeOut(200);
    });


    var config = {
        sensitivity: 3,
        interval: 200,
        over: function() {
            var drawer = '#' + this.id + 'Popup';
            $(drawer).fadeIn(200);
        },
        out: function() {
            var drawer = '#' + this.id + 'Popup';
            $(drawer).fadeOut(200);
        },
        timeout: 500
    };

    try {

        $('.popupover-handle').hoverIntent(config);
        $('.popupclick-handle').click(function() {
            var drawer = '#' + this.id + 'Popup';
            $('.popup').fadeOut(100);
            var offset = $(this).position();
            var width = $(this).width();

            $(drawer).css({ left: (offset.left - $(drawer).width() + 100 + (width / 2)), top: (offset.top + 10) });
            $(drawer).fadeIn(200);
        });
    } catch (e) { }


    $('.popuplink').click(function(e) {
        e.preventDefault();
        var popupwin = $($(this).attr('href'));

        $('.popup').fadeOut(100);
        if (popupwin.is(':visible')) {
            popupwin.fadeOut(200);
        } else {
            popupwin.fadeIn(200);
        }
    });

    $('.taf-handle').click(function() {
        var drawer = '#TAFPopup';
        $('.popup').fadeOut(100);
        var offset = $(this).position();
        var width = $(this).width();

        $(drawer).css({ left: (offset.left - 340 + (width / 2)), top: (offset.top + 10) });
        $(drawer).fadeIn(200);

    });

    $('.taf-handle2').click(function() {
        var drawer = '#TAFPopup';
        $('.popup').fadeOut(100);
        //var offset = $(this).position();
        //var width = $(this).width();

        $(drawer).css({ left: 350, top: 405 });
        $(drawer).fadeIn(200);

    });


    $('.resetTAF').click(function() {
        $('#TAFContent').show(400);
        $('#TAFPanel').hide(200);
        $('#tafForm')[0].reset();
    });

    jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
    
        phone_number = phone_number.replace(/\s+/g, "");
        return this.optional(element) || phone_number.length > 9 &&
		    phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);


    }, "Please enter a valid US phone number.");

    jQuery.validator.addMethod("commentLength", function(value, element) {
        return (value.length < 300);
    }, "Please enter a comment that's less than 300 characters.");

});

// on document ready search for forms and prepare validation

$(document).ready(function() {
	
    init();
	var forms = $('form.jquery_form').get();
	
	for(var i = 0; i < forms.length; i++) {	
	    $('#' + forms[i].id + ' .jquery_submit').click(function() {
	    
	        var formid = this.parentNode.parentNode.parentNode.id;
	        var container = $('#' + formid + '-container');
	        var validator = $('#' + formid).validate({
	    	    errorContainer: container,
	    	    errorLabelContainer: $("ul", container),
	    	    wrapper: 'li',
	    	    meta: "validate"	        
	        });
	        

		        
	        if(validator.form()) {
	            eval($('#' + this.parentNode.parentNode.parentNode.id + ' .function').attr('for') + '("' + formid + '")');
	        }
	    });
	}
	
	$('.rollover').each(function() {
	    this.style.display = 'inline';
	});
    
    function mycarousel_initCallback(carousel) {

        $('#mycarousel-next').click(function() {
            carousel.next();
            return false;
        });

        $('#mycarousel-prev').click(function() {
            carousel.prev();
            return false;
        });
    };
    
    if($('#MonthlyGifts').jcarousel) {   
        $('#MonthlyGifts').jcarousel({
            initCallback: mycarousel_initCallback,
            buttonNextHTML:null,
            buttonPrevHTML:null
        });
    }
});


var Event = {
	add: function(obj,type,fn) {
		if (obj.attachEvent) {
			obj['e'+type+fn] = fn;
			obj[type+fn] = function() { obj['e'+type+fn](window.event); }
			obj.attachEvent('on'+type,obj[type+fn]);
		} else
		obj.addEventListener(type,fn,false);
	}
}

var ourForm;

function init() {
    
    var form_array = document.getElementsByTagName('form');
    for(var i = 0; i < form_array.length; i++) {
        var required = form_array[i].elements['required'];
        if(required) {
            ourForm = form_array[i];       
            if(form_array[i].Submit) {               
                Event.add(form_array[i].Submit, 'click', checkValues);
            }
        }
    }   
}

function checkValues(evt) {
    var required = ourForm.elements['required'];
    var fields = required.value.split('|');
    var errors = '';
    
    for(var j = 0; j < fields.length; j++) {
        if(fields[j].length > 0) {
            var field = document.getElementsByName(fields[j]);
            
            var hasValue = false;
            if(field) {
                for(var k = 0; k < field.length; k++) {
                    
                    if(field[k].selectedIndex != null) {
                        if(field[k].options[field[k].selectedIndex].value.length > 0 && field[k].options[field[k].selectedIndex].value != '--') {
                            hasValue = true;
                        }
                    } else if(field[k].value.length > 0) {
                        hasValue = true;
                    }
                }                  
            }
            
            if(!hasValue) {
                errors += fields[j] + ' is required.\r\n';            
            }
        }
    }
    if(errors.length > 0) {
        alert(errors);
    } else {
        ourForm.submit();
    }
    
    return false;
}

function submitTAF(formid) {
    
    var ourForm = $('#' + formid);
    
    var inputs = [];

    $(':input', ourForm).each(function() {
        inputs.push('"' + this.name + '":"' + escape(this.value) + '"');
    });
    var json_data = '{' + inputs.join(',') + '}';
    
    $.ajax({
        dataType: "json",
        type: "POST",
        url: "/ajaxpro/AjaxMethods,App_Code.ashx",
        data: json_data,
        beforeSend: function(xhr) {
            xhr.setRequestHeader("X-AjaxPro-Method", "TellAFriend");
        },
        success: function(s) {
            
            if(s.value) {
                $('#TAFContent').hide();
                $('#TAFPanel').show();
                document.getElementById('tafErrMessage').innerHTML = '';
            }
            else {
                
                document.getElementById('tafErrMessage').innerHTML = 'Your email could not be sent. Please check your info below and try again.';
            }
        }
    }); 
    
}


function showProps(o) {

    var s = '';
    for (property in o)
    {
    s = s + "\n "+property;
    }

    alert(s);
}