var foo = "";

var SiteConfig = {
	httpBase : function () {
		try { return _http_base; } catch (e) { return ''; }
	},
	sslBase : function () {
		try { return _ssl_base; } catch (e) { return ''; }
	},
	assetBase : function() {
		try { return _asset_base; } catch (e) { return ''; }
	}
}

// Create a namespace for our utilities
var UTIL = UTIL || {};
UTIL.popup = UTIL.popup || {};

/**
 * Open popup window
 *
 * Opens a popup window using as little as a URL. An optional params object can
 * be passed.
 *
 * @param {String} href
 * @param {Object} params
 * @return {WindowObjectReference}
 */
UTIL.popup.open = function (href, params)
{
 	// Defaults (don't leave it to the browser)
 	var defaultParams = {
 		"width":	   "500",	// Window width
 		"height":	   "650",	// Window height
 		"top":		   "0",		// Y offset (in pixels) from top of screen
 		"left":		   "0",		// X offset (in pixels) from left side of screen
 		"directories": "no",	// Show directories/Links bar?
 		"location":    "no",	// Show location/address bar?
 		"resizeable":  "yes",	// Make the window resizable?
 		"menubar":	   "no",	// Show the menu bar?
 		"toolbar":	   "no",	// Show the tool (Back button etc.) bar?
 		"scrollbars":  "yes",	// Show scrollbars?
 		"status":	   "no"		// Show the status bar?
 	};

	var windowName = params["windowName"] || "new_window";

	var i, useParams = "";

	// Override defaults with custom values while we construct the params string
 	for (i in defaultParams)
 	{
 		useParams += (useParams === "") ? "" : ",";
 		useParams += i + "=";
 		useParams += params[i] || defaultParams[i];
 	}

	return window.open(href, windowName, useParams);
};

var RunOnce = function(callback) {
	var obj = new function() {
		this.executed = false;
		this.run = function() {
			if (!this.executed) {
				this.executed = true;
				callback();
			}
		};
	}
	return function() {
		obj.run();
	};
};

$(function(){ // Run this code when the document's done loading    

	// Apply this code to each link with class="popup"
 	$("a.popup").each(function (i){

		// Add an onClick behavior to this link
 		$(this).click(function(event) {

			// Prevent the browser's default onClick handler
 			event.preventDefault();

			// Grab parameters using jQuery's data() method
 			var params = $(this).data("popup") || {};			 

			// Use the target attribute as the window name
 			if ($(this).attr("target"))
 			{
 				params.windowName = $(this).attr("target");
 			}

			// Pop up the window
 			var windowObject = UTIL.popup.open(this.href, params);

			// Save the window object for other code to use
 			$(this).data("windowObject", windowObject);
 		});
 	});
});

var FormHelper = {
	post : function(url, data, form, responseHandler) {
		// div is a jquery obj
		var handler = function(resp, _status) {
			elem = $(form).find("span[@rel=global_errors]")[0];
			if (elem) {
				FormHelper.showErrors(resp.global_errors, elem);
			}

			elem = null;//$(form).find('');
			if (elem) {
				FormHelper.showErrors(resp.global_notify, elem);
			}

			// blank out all field errors
			$(form).find('fieldset[@rel]').removeClass('error');
			$(form).find('div[@rel]').removeClass();
			$(form).find('div[@rel]').empty();
			
			if (resp.field_errors) {
				for (var field in resp.field_errors) {
					// find the div
					elem = $(form).find('div[@rel='+field+'_error]')[0];
					if (elem) {
						$(elem).text(resp.field_errors[field]);
						$(elem).addClass('error');
						$('fieldset[@rel='+field+']').addClass('error');
					}
				}
			}

			if (responseHandler) {
				responseHandler(resp);
			}

			FormHelper.hideThrobber($(form));
			FormHelper.enableSubmit($(form));
		}

		FormHelper.showThrobber($(form));
		FormHelper.disableSubmit($(form));
		$.post(url, data, handler, 'json');
	},
	showErrors : function(errors, elem) {
		$(elem).text('');
		$(elem).children().remove();

		if (!errors) return;

		len = errors.length;
		if (len == 1) {
			$(elem).text(errors[0]);
			$(elem).parent().show();
		} else if (len > 1) {
			ul = document.createElement('ul');
			for (var i=0; i<errors.length; i++) {
				li = document.createElement('li');
				$(li).text(errors[i]);
				ul.appendChild(li);
			}
			elem.appendChild(ul);
			$(elem).parent().show();
		} else {
			$(elem).parent().hide();
		}
	},
	encodeFields : function(form) {
		var values = [];
		form.find(':input').each(function(i,o) {
			switch (o.type) {
			case 'text':
			case 'password':
			case 'hidden':
				values.push(o.name + '=' + encodeURIComponent(o.value));
				break;
			case 'checkbox':
			case 'radio':
				if (o.checked) {	// only include if checked
					values.push(o.name + '=' + encodeURIComponent(o.value));
				}
				break;
			case 'select-one':
				values.push(o.name + '=' + encodeURIComponent(o.value));
				break;
			default:
				//alert('[default ' + o.type + '] ' + o.name + ': ' + o.value);
			}
		});
		return values.join('&');
	},
	showThrobber : function(form) {
		elem = $(form).find("span.throbber_holder")[0];
		if (elem) {
			img = document.createElement('img');
			img.src = SiteConfig.assetBase() + '/images/icons/loading_throbber_blue.gif';
			elem.appendChild(img);
		}
	},
	hideThrobber : function(form) {
		elem = $(form).find("span.throbber_holder")[0];
		if (elem) {
			if (elem.hasChildNodes()) {
				while (elem.childNodes.length >= 1) {
					elem.removeChild(elem.firstChild);
				}
			}
		}
	},
	disableSubmit : function(form) {
		elems = $(form).find("input[type=image]");
		for (i = 0; i < elems.length; i++) {
			elem = elems[i];
			elem.disabled = true;
			elem.style.opacity = '0.5';
			elem.style.filter = 'alpha(opacity = 50)';
		}
	},
	enableSubmit : function(form) {
		elems = $(form).find("input[type=image]");
		for (i = 0; i < elems.length; i++) {
			elem = elems[i];
			elem.disabled = false;
			elem.style.opacity = null;
			elem.style.filter = null;
		}
	}
}

var ModalHelper = {
	_authenticatedDest : null,
	gotoAuthenticatedDest : function() {
		if (ModalHelper._authenticatedDest) {
			window.location = ModalHelper._authenticatedDest;
		} else {
			window.location.reload(true);
		}
	},
	showLoginModal : function(dest) {
		if (dest)
			ModalHelper._authenticatedDest = dest;
		else {
			ModalHelper._authenticatedDest = null;
		}
		ModalHelper.showModal('sign_in');
	},
	showRegisterModal : function(dest) {
		if (dest)
			ModalHelper._authenticatedDest = dest;
		else {
			ModalHelper._authenticatedDest = null;
		}
		ModalHelper.showModal('reg_dialog');
	},
	showMergeModal : function(dest) {
		if (dest)
			ModalHelper._authenticatedDest = dest;
		else {
			ModalHelper._authenticatedDest = null;
		}
		ModalHelper.showModal('merge_account');
	},
	loginSubmit : function(form) {
		data = FormHelper.encodeFields($(form));
		handler = function(resp) {
			if (resp.success){
				if(JJFacebook.show_merge){
					ModalHelper.showModal("merge_success"); 
				}
				else if (null != ModalHelper._authenticatedDest) {
					window.location = ModalHelper._authenticatedDest;
				}
				else{
					window.location.reload(true);
				}
			}
		}
		FormHelper.post('/user/login.json', data, form, handler);
		return false;
	},
	registerSubmit : function(form) {
		data = FormHelper.encodeFields($(form));
		handler = function(resp) {
			// reenable create
			btn = $(form).find('input:image')[0];
			btn.style.opacity = null;
			btn.disabled = false;
			$(btn).css({'filter':'alpha(opacity = 100)'});

			// set static message if none
			elem = $(form).find("span[@rel=global_errors]")[0];
			if (elem && (resp.global_errors == null || resp.global_errors.length == 0)) {
				$(elem).text('Correct errors in the fields marked in red');
				$(elem).parent().show();
			}

			// TODO
			if (resp.success) {
				$("#reg_dialog").jqmHide();
				$("#reg_success_dialog").jqm({trigger: "jqModal_reg_success"}).jqmShow();
				if (resp.already_logged_in) {
					if (ModalHelper._authenticatedDest != null) {
						window.location = ModalHelper._authenticatedDest;
					} else {
						window.location.reload(true);
					}
				} else {
					email_elem = $("#reg_success_dialog").find(".account")[0];
					$(email_elem).text(resp.email);
				}
			}
		}
		FormHelper.post('/user/register.json', data, form, handler);
		return false;
	},
	// LOGIN/REG MODALS
	showModal : function(modalName) {
	  ContentViewPageSupport.pauseMovie();
	  var allModals = $(".modal_form");
	  allModals.jqm();
	  allModals.jqmHide();
	  $(allModals).find("form").each(function() {
	    this.reset();
	    $(this).find(".error").removeClass("error");
	    $(this).find(".warnings").hide();
	  });
	  var targetModal = $("#"+modalName);
	  targetModal.jqm({modal: true, trigger: modalName,
	    onShow: function(hash) {
	      hash.w.css({position:'absolute', 'top': $(document).scrollTop()+50}).show();
	      if (modalName == 'login_dialog') {
	        $(targetModal).find(".warnings").hide();
	      }
	      if ($.browser.mozilla && jQuery.browser.version.substr(0,3)=='1.8') {
	        $(targetModal).css('opacity','0.9999');
	      }
				if (s) {
					s.pageName = "Modal : " + modalName;
					s.t();
				}
	    }
	  }).jqmShow();
	},

	hideModal : function(modalName) {
	  ContentViewPageSupport.playMovie();
	  var targetModal = $("#"+modalName);
	  $(targetModal).find(".error").removeClass("error");
	  $(targetModal).find(".warnings").hide();
	  targetModal.jqmHide();
	}
}

/* TRACK ECARDS */
var TrackEcard = {
	_currentMake : null,
	_currentPage : null,
	_totalCount : null,
	_currentRecipient : null,
	showResend : function(key) {
		// hide!
		prevKey = this._currentRecipient;
		if (prevKey) {
			if (prevKey == key) {
				return;	// ignore subsequent 'resend' presses
			} else {
				elem = document.getElementById('resend_'+prevKey);
				elem.style.display = 'none';
				TrackEcard.deleteChildren(elem);
				this._currentRecipient = null;
			}
		}

		this._currentRecipient = key;
		elem = document.getElementById('resend_'+key);
		if (elem.style.display == 'none') {
			elem_td = document.createElement('td');
			elem_td.id = 'td_resend_' + key;
			elem_td.className = 'resend';
			elem_td.colSpan = 4;
			elem.appendChild(elem_td);

			a = document.createElement('a');
			a.href = '#';
			a.onclick = function() { TrackEcard.hideResend(key); return false; }
			a.innerHTML = "Close";
			a.className = "close";
			elem_td.appendChild(a);

			p = document.createElement('p');
			p.innerHTML = "Your eCard will be resent to this recipient's email address. If it is incorrect, you can modify it below:";
			elem_td.appendChild(p);

			err = document.createElement('p');
			err.id = 'error_' + key;
			err.style.display = 'none';
			elem_td.appendChild(err);

			form = document.createElement('form');
			form.id = 'form_' + key;
			form.onsubmit = function() {
				form = document.getElementById('form_' + key);
				var email = '';
				if ($.browser.msie) {
					for (var i=0; i < form.length; i++) {
						if (form.elements[i].name == 'email') {
							email = form.elements[i].value;
						}
					}
				} else {
					email = form.elements['email'].value;
				}
				TrackEcard.resendRecipient(key, email);
				return false;
			}
			elem_td.appendChild(form);

			// find the current email value
			tr_recip = document.getElementById('recipient_' + key);
			current_email = tr_recip.cells[0].innerHTML;

			text = document.createElement('input');
			text.type = 'text';
			text.size = 40;
			text.name = 'email';
			text.value = current_email;
			form.appendChild(text);

			btn = document.createElement('input');
			btn.value = 'Resend';
			btn.className = 'resend_button';
			btn.type = 'image';
			btn.src = SiteConfig.assetBase() + '/images/buttons/resend.png';
			//btn.onSubmit = "return false";
			form.appendChild(btn);

			span = document.createElement('span');
			span.id = 'throbber_' + key;
			form.appendChild(span);

			elem.style.display = '';
		}
	},
	hideResend : function(key) {
		elem = document.getElementById('resend_'+key);
		elem_td = document.getElementById('td_resend_'+key);
		elem.removeChild(elem_td);
		elem.style.display = 'none';
		this._currentRecipient = null;
	},
	resendRecipient : function(key, email) {
		data = 'key=' + encodeURIComponent(key) + '&email=' + encodeURIComponent(email);
		handler = function(resp) {
			// remove throbber
			throb = document.getElementById('throbber_' + key);
			TrackEcard.deleteChildren(throb);

			recipient = resp.recipient;
			success = resp.success;
			error_msg = resp.error;

			if (success == true) {
				TrackEcard.updateRecipient(recipient);
				TrackEcard.hideResend(key);
			} else {
				err = document.getElementById('error_' + key);
				err.style.display = 'block';
				err.innerHTML = error_msg;
			}
		}
		$.getJSON('/my_account/resend_recipient.json', data, handler);

		throb = document.getElementById('throbber_' + key);
		img = document.createElement('img');
		img.src = SiteConfig.assetBase() + '/images/icons/loading_throbber_blue.gif';
		throb.appendChild(img);
	},
	cancelRecipient : function(key) {
		if (confirm('Are you sure?')) {
			var page_show = this._currentPage;
			var updated_total = this._totalCount - 1;
			var rem = updated_total % 6;
			var now_total_pages = (updated_total / 6) + (rem > 0 ? 1 : 0);
			if (page_show > now_total_pages) {
				page_show = now_total_pages;
			}

			//alert('show ' + page_show + ' now ' + now_total_pages + ' upd ' + updated_total + ' rem ' + rem);

			data = 'key=' + encodeURIComponent(key);
			handler = function(resp) {
				// remove throbber
				label = document.getElementById('track_label_' + TrackEcard._currentMake);
				throb = document.getElementById('make_throbber_' + TrackEcard._currentMake);
				label.removeChild(throb);

				success = resp.success;
				if (success == true) {
					TrackEcard.showModule(TrackEcard._currentMake, page_show);
				} else {
					TrackEcard.showModule(TrackEcard._currentMake, TrackEcard._currentPage);
				}
			}
			$.getJSON('/my_account/cancel_recipient.json', data, handler);

			throb = document.getElementById('make_throbber_' + this._currentMake);
			if (!throb) {
				throb = document.createElement('img');
				throb.id = 'make_throbber_' + this._currentMake;
				throb.className = 'throbber';
				throb.src = SiteConfig.assetBase() + '/images/icons/loading_throbber_blue.gif';

				label = document.getElementById('track_label_' + this._currentMake);
				label.appendChild(throb);
			}
		}

		return false;
	},
	toggleModule : function(make_key) {
		// hide current
		if (this._currentMake) {
			prevKey = this._currentMake;

			close_tracker = document.getElementById('track_label_' + prevKey);
			close_tracker.className = '';
			// TODO: flip arrow thingy
			current = $('#track_' + prevKey);
			current.hide();
			current.empty();
			this._currentMake = null;
			this._currentRecipient = null;
			this._totalCount = null;
			this._currentPage = null;

			if (prevKey == make_key) {
				return;
			}
		}

		// show new
		this._currentMake = make_key;
		open_tracker = document.getElementById('track_label_' + make_key);
		current = $('#track_' + this._currentMake);
		current.empty();
		TrackEcard.showModule(make_key);
		current.show();
		open_tracker.className = 'open';
		
		// TODO: flip arrow thingy
	},
	showModule : function(make_key, page) {
		data = 'key=' + encodeURIComponent(make_key)
		if (page) {
			data += '&page=' + page
		}

		handler = function(result) {
			// remove throbber
			label = document.getElementById('track_label_' + make_key);
			throb = document.getElementById('make_throbber_' + make_key);
			label.removeChild(throb);

			recipient = result.recipient;

			if (result.subscriber) {
				TrackEcard.showSubscriberModule(result)
			} else {
				TrackEcard.showNonSubscriberModule(result);
			}
		}
		$.getJSON('/my_account/recipients.json', data, handler);

		throb = document.getElementById('make_throbber_' + make_key);
		if (!throb) {
			throb = document.createElement('img');
			throb.id = 'make_throbber_' + make_key;
			throb.className = 'throbber';
			throb.src = SiteConfig.assetBase() + '/images/icons/loading_throbber_blue.gif';

			label = document.getElementById('track_label_' + make_key);
			label.appendChild(throb);
		}
	},
	showSubscriberModule : function(result) {
		this._currentPage = result.page;
		this._totalCount = result.total;

		// clear first
		track = document.getElementById('track_' + result.make_key);
		TrackEcard.deleteChildren(track);

		var table = document.createElement('table');
		//table.id = 'table_recipients_' + result.make_key;
		table.className = 'recipients';
		track.appendChild(table);

		thead = document.createElement('thead');
		tr = document.createElement('tr');
		th = document.createElement('th');
		th.innerHTML = 'Recipient';
		th.className = 'recipient';
		tr.appendChild(th);
		th = document.createElement('th');
		th.innerHTML = 'Send Date';
		th.className = 'send_date';
		tr.appendChild(th);
		th = document.createElement('th');
		th.innerHTML = 'Opened';
		th.className = 'opened';
		tr.appendChild(th);
		th = document.createElement('th');
		th.innerHTML = 'Actions';
		th.className = 'actions';
		tr.appendChild(th);
		thead.appendChild(tr);

		table.appendChild(thead);

		tbody = document.createElement('tbody');
		table.appendChild(tbody);
		if (result.count > 0) {
			for (var i = 0; i < result.recipients.length; i++) {
				TrackEcard.addRecipient(result.recipients[i], tbody);
			}
		} else {
			tr = document.createElement('tr');
			td = document.createElement('td');
			td.colSpan = '4';
			td.className = 'not_emailed';
			td.innerHTML = "You haven't used JibJab to email this eCard yet. <a href='/view/" + result.make_key + "'>Click here</a> to email now.";
			tr.appendChild(td);
			tbody.appendChild(tr);
		}

		if (result.total > 6) {
			div = document.createElement('div');
			div.className = 'paging';
			track.appendChild(div);

			if (result.show_prev) {
				a = document.createElement('a');
				a.href = '#';
				a.onclick = function() { TrackEcard.showModule(result.make_key, result.page - 1); return false };
				a.innerHTML = 'Previous Page';
				a.className = 'previous_page';
				div.appendChild(a);
				div.appendChild(document.createTextNode(' '));
			}

			page = document.createElement('p');
			page.innerHTML = (result.first + ' - ' + result.last + ' of ' + result.total);
			div.appendChild(page);

			if (result.show_next) {
				div.appendChild(document.createTextNode(' '));
				a = document.createElement('a');
				a.href = '#';
				a.onclick = function() { TrackEcard.showModule(result.make_key, result.page + 1); return false };
				a.innerHTML = 'Next Page';
				a.className = 'next_page';
				div.appendChild(a);
			}
		}
	},
	showNonSubscriberModule : function(result) {
		track = document.getElementById('track_' + result.make_key);
		
		p = document.createElement('h3');
		p.innerHTML = 'eCard tracking is available exclusively to JibJab Members. As a Member, you can:';
		track.appendChild(p);

		ul = document.createElement('ul');
		li = document.createElement('li');
		li.innerHTML = 'Know who has viewed your eCard';
		ul.appendChild(li);
		li = document.createElement('li');
		li.innerHTML = 'See when they picked it up';
		ul.appendChild(li);
		li = document.createElement('li');
		li.innerHTML = 'Find out who has not opened your eCard';
		ul.appendChild(li);
		track.appendChild(ul);
		
		ul = document.createElement('ul');

		li = document.createElement('li');
		li.innerHTML = "Correct and resend an eCard if your recipient's email address is incorrect";
		ul.appendChild(li);
		li = document.createElement('li');
		li.innerHTML = 'Schedule an eCard to be sent in the future';
		ul.appendChild(li);
		track.appendChild(ul);

		p = document.createElement('p');
		p.innerHTML = "It's the perfect time to become a member!";
		p.className = 'giant';
		track.appendChild(p);

		a = document.createElement('a');
		a.href = SiteConfig.sslBase() + '/my_account/subscription_start?return=my_stuff&pageaction=my_stuff_subscribe';
		a.id = 'become_a_subscriber';
		a.innerHTML = 'Become a Subscriber';
		track.appendChild(a);
	},
	addRecipient : function(recip, table) {
		tr_recip = document.createElement('tr');
		tr_recip.id = 'recipient_' + recip.key;
		table.appendChild(tr_recip);

		// precreate cells
		tr_recip.appendChild(document.createElement('td'));
		tr_recip.appendChild(document.createElement('td'));
		tr_recip.appendChild(document.createElement('td'));
		tr_recip.appendChild(document.createElement('td'));

		tr_resend = document.createElement('tr');
		tr_resend.id = 'resend_' + recip.key;
		tr_resend.style.display = 'none';
		table.appendChild(tr_resend);

		TrackEcard.updateRecipient(recip);
		return tr_recip;
	},
	updateRecipient : function(recip) {
		tr_recip = document.getElementById('recipient_' + recip.key);

		recip_index = (tr_recip.rowIndex - 1) / 2 % 2;	// div 2 because of resend <tr>
		row_class = (recip_index == 0) ? 'even ' : 'odd ';
		if (recip.opened == 'unopened' || recip.opened == 'blocked' || recip.opened == 'scheduled') {
			tr_recip.className = row_class + recip.opened;
		} else {
			tr_recip.className = row_class;
		}

		var tr_cells;
		if ($.browser.msie) {
			tr_cells = tr_recip.children;
		} else {
			tr_cells = tr_recip.cells;
		}

		// 1. email
		tr_cells[0].innerHTML = recip.email;

		// 2. send date
		if (recip.send_date) {
			tr_cells[1].innerHTML = recip.send_date;
		} else { // null
			tr_cells[1].innerHTML = '';
		}

		// 3. opened
		TrackEcard.deleteChildren(tr_cells[2]);
		if (recip.opened == 'blocked') {
			txt1 = document.createTextNode('blocked');
			tr_cells[2].appendChild(txt1);

			txt2 = document.createTextNode(' ( ');
			txt3 = document.createTextNode(' )');

			popup = document.createElement('a');
			popup.href = '#';
			popup.onclick = function() { window.open('http://www.webetools.com/jibjab_help/users/kb.php?id=10071&category_id=0&sid2=', 'Blocked'); return false; }
			popup.innerHTML = '?<span>This user has blocked all emails from JibJab and cannot receive your eCard.</span>';

			tr_cells[2].appendChild(txt2);
			tr_cells[2].appendChild(popup);
			tr_cells[2].appendChild(txt3);
		} else {
			tr_cells[2].innerHTML = recip.opened;
		}
		tr_cells[2].className = 'opened';

		// 4. action
		TrackEcard.deleteChildren(tr_cells[3]);
		if (recip.opened == 'scheduled') {
			a = document.createElement('a');
			a.href = '#';
			a.onclick = function() { TrackEcard.cancelRecipient(recip.key); return false; }
			a.innerHTML = 'Cancel';
			tr_cells[3].appendChild(a);
		} else if (recip.opened == 'blocked') {
			// leave it blank
		} else {
			a = document.createElement('a');
			a.href = '#';
			a.onclick = function() { TrackEcard.showResend(recip.key); return false; }
			a.innerHTML = 'Resend';
			tr_cells[3].appendChild(a);
		}
	},
	deleteChildren : function(elem) {
		if (elem.hasChildNodes()) {
			while (elem.childNodes.length >= 1) {
				elem.removeChild(elem.firstChild);       
			} 
		}
	}
}

function jjGoBack() {
	if (goBackFromCastingUrl) {
		window.location = goBackFromCastingUrl;
	}
	else {
	  history.back(-1);
	}
}

/* Category Pages */

var CategoryPageSupport = {
  /* Keyed on template ID and containing the template thumbnail URL. */
  large_stills_hash: {},
  
  /* Warning: large_stills_hash is a global hash populated by the page. */
  load_still_template_image: function(template_id) {
    var img_element = document.getElementById('template_' + template_id + '_still_img');
    if (img_element == null)
      return;

    if (img_element.src == this.large_stills_hash[template_id])
    {
      // Do nothing. It's already populated.
    }
    else
    {
      img_element.src = this.large_stills_hash[template_id];
    }
  },

  embed_template_swf: function(template_id, service_host, asset_host, category_id)
{
    var flashvars = {
      templateID: template_id,
      categoryID: category_id,
      service: service_host,
      partnerID: "JibJab"
    };

    var params = {
      wmode: "window",
      scaleMode: "showAll",
      quality: "high",
      allowNetworking: "all",
      allowFullScreen: "true",
      allowScriptAccess: "always"
    };

    var attributes = {
      id: "A128199_" + template_id
    };

    // Initial population of SWFs.
    swfobject.embedSWF(asset_host+"/client/zero/ClientZero_EmbedViewer.swf", "template_"+template_id+"_swf_placeholder", "425", "319", "9.0.0", false, flashvars, params, attributes);
  
  },

  remove_and_repopulate_swf: function(template_id, service_host, asset_host, category_id)
  {
    swfobject.removeSWF('A128199_' + template_id);
    // Get the container and re-create the SWF.
    var preview_container = document.getElementById('template_'+template_id+'_preview_container');

		children = preview_container.childNodes;
		for (i = 0; i < children.length; i++) {
			preview_container.removeChild(children[i]);
		};

    var swf_placeholder_div = document.createElement('div');
    swf_placeholder_div.id = 'template_'+template_id+'_swf_placeholder';
    preview_container.appendChild(swf_placeholder_div);

    this.embed_template_swf(template_id, service_host, asset_host, category_id);
  },


  /* TeaserView recording */
  log_teaser_view: function(tpl_id, cat_id, brws_mthd, prm) {
    $.post("/stats/teaser_view", { template_id: tpl_id, category_id: cat_id, browse_method: brws_mthd, premium: prm });
  },

  categorize_action_link: function(template_id, category_id) {
    if (template_id == null)
      return;

    var link_element = document.getElementById('tpl_' + template_id + '_member_specific_action_link');
    if (link_element == null)
      return;
    var member_login_link_element = document.getElementById('tpl_' + template_id + '_member_login_link');

    if (!link_element.href.match('category_id') )
      link_element.href = link_element.href + "?category_id=" + category_id;

    if (member_login_link_element != null)
    {
      if (!member_login_link_element.href.match('category_id') )
        member_login_link_element.href = member_login_link_element.href.replace('#already_registered', '?category_id='+category_id+'#already_registered');
    }

  }

}

/* End Category Pages */

/* Begin Content View Page */
var ContentViewPageSupport = {
  _tab_names: ['share', 'email', 'comments', 'make_your_own'],
  _default_full_name: null,
  _default_recipients: null,

  rra: function(ra_name) {
    jQuery.get('/stats/rra', {ra_n: ra_name});
  },

	pauseMovie: function() {
		var player = $("#cvp_player");
		if (player && player[0]) {
			player[0].pause_movie();
		}
	},

	playMovie: function() {
		var player = $("#cvp_player");
		if (player && player[0]) {
			player[0].play_movie();
		}
	},

  set_default_full_name: function(fname) {
    this._default_full_name = fname;
  },

  set_default_recipients: function(r) {
    this._default_recipients = r;
  },

  /* Called when recipients text area gets focus. Clear field only if value is
   * default recipients value. */
  clear_recipients_field: function() {
    var textarea_element = $('textarea#cvp_share_email_recipients');
    var val = textarea_element.val();

    if (val != null && val == this._default_recipients)
      textarea_element.val('');
  },

  /* Repopulates when recipients text area loses focus. Repopulate only when
   * empty. */
  reset_recipients_field: function() {
    var textarea_element = $('textarea#cvp_share_email_recipients');
    var val = textarea_element.val();

    if (val != null && val == '')
      textarea_element.val(this._default_recipients);
  },
  
  select_tab: function(cvp_tab_index) {
    var tab_name = this._tab_names[cvp_tab_index];

    /* Clear all first. */
    for (var i = 0; i < this._tab_names.length; i++) {
      var current_tab_name = this._tab_names[i];
      this.disable_tab(current_tab_name);
    }

    /* Enable new active tab. */
    this.enable_tab(tab_name);
  },

  disable_tab: function(tab_name) {
    var content_container = document.getElementById('cvp_' + tab_name + '_container'); 
    var tab_elem = document.getElementById('cvp_' + tab_name + '_tab');
    content_container.style.display = 'none';
    tab_elem.className = tab_name;
  },

  enable_tab: function(tab_name) {
    var active_container = document.getElementById('cvp_' + tab_name + '_container'); 
    var active_tab_elem = document.getElementById('cvp_' + tab_name + '_tab');
    active_container.style.display = 'block';
    active_tab_elem.className = tab_name + ' active';
  },

  show_email_share_form: function() {
    $('div#cvp_email_share_confirmation_message').remove();

    /* Clear old error fields */
    $("div#cvp_email_share_errors_container").remove();
    this.clear_error_states_on_form();

    /* Clear form fields. */
    if (this._default_full_name != null)
      $('input#cvp_share_email_sender_name').val(this._default_full_name);
    else
      $('input#cvp_share_email_sender_name').val('');

    if (this._default_recipients != null)
      $('textarea#cvp_share_email_recipients').val(this._default_recipients);
    else
      $('textarea#cvp_share_email_recipients').val('');

    $('textarea#cvp_share_email_message').val('');

    $('form#cvp_share_email_form').show();
  },

  /* Takes a date field and pads an extra zero onto it, then returns as a
   * string. */
  pad_date_field: function(date_field) {
    if (date_field >= 0 && date_field < 10)
    {
      return "0" + date_field;
    }
    else
    {
      return "" + date_field;
    }
  },

  detect_timezone_offset: function() {
    var d = new Date();
    var tz_offset = d.getTimezoneOffset();

    var hour_offset;
    var minute_offset;
    
    var js_tzo_is_negative = false;

    /* Invert sign of offset given by JavaScript and that in timezone format
     * expected by email service. */

    if (tz_offset < 0)
    {
      js_tzo_is_negative = true;
      tz_offset = -tz_offset;
    }

    hour_offset = tz_offset / 60;
    hour_offset = Math.floor(hour_offset);
    hour_offset = this.pad_date_field(hour_offset);
    minute_offset = tz_offset % 60;
    minute_offset = this.pad_date_field(minute_offset);

    var offset_string = hour_offset + '' + minute_offset;
    if (js_tzo_is_negative)
      offset_string = "+" + offset_string;
    else
      offset_string = "-" + offset_string;

    return offset_string;
  },

  clear_error_states_on_form: function() {
    /* Reset error states in the form. */
    var sender_name_input= $("input#cvp_share_email_sender_name");
    var sender_name_label = $("label#cvp_share_email_sender_name_label");
    sender_name_input.removeClass("error");
    sender_name_label.removeClass("error");

    var recipients_textarea = $("textarea#cvp_share_email_recipients");
    var recipients_label = $("label#cvp_share_email_recipients_label");
    recipients_textarea.removeClass("error");
    recipients_label.removeClass("error");
    var delivery_label = $("label#delivery_label");
    var send_on_label = $("label#cvp_share_email_send_on_label");
    delivery_label.removeClass("error");
    send_on_label.removeClass("error"); 
  },

  submit_email_share_form: function(make_external_key) {
    var sender_name = $("input#cvp_share_email_sender_name").val();
    var recipients = $("textarea#cvp_share_email_recipients").val();
    var message = $("textarea#cvp_share_email_message").val();

    var scheduled_send_parameters = '';

    var send_now = $("input#cvp_share_email_send_now").attr('checked');
    var send_later = $("input#cvp_share_email_send_on").attr('checked');

    var send_month = $("select#scheduled_send_date_2i").val();
    var send_day = $("select#scheduled_send_date_3i").val();
    var send_year = $("select#scheduled_send_date_1i").val();

    var send_date_string;
    if (send_later == true)
    {
      send_month = this.pad_date_field(send_month); 
      send_day = this.pad_date_field(send_day);
      send_date_string = send_year + '-' + send_month + '-' + send_day; 
    
      var offset_string = this.detect_timezone_offset();
      scheduled_send_parameters='&send_date=' + encodeURIComponent(send_date_string) + '&local_offset=' + encodeURIComponent(offset_string);
    }

    if (recipients == this._default_recipients) {
      recipients = "";
    }

    this.clear_error_states_on_form();

	data = 'make=' + encodeURIComponent(make_external_key) + '&sender_name=' + encodeURIComponent(sender_name) +'&recipients=' + encodeURIComponent(recipients) + '&message=' + encodeURIComponent(message) + scheduled_send_parameters;

    handler = function(json) {
      var share_action_success = json.success;

      if (share_action_success == true)
      {
        var valid_emails = json.valid_emails;
        valid_emails_markup = "";
        for (var i = 0; i < valid_emails.length; i++) {
          valid_emails_markup += "<li>"+ valid_emails[i] +"</li>"; 
        }

        var send_date = json.send_date;
        var success_notification_text = 'Your email has been sent to the following recipients';
        if (send_date != null)
          success_notification_text = 'Your email will be sent to the following recipients <strong>on ' + send_date + '</strong>';

        $('form#cvp_share_email_form').before("<div id='cvp_email_share_confirmation_message' class='confirmed'><p>" + success_notification_text + "</p><ul>"+valid_emails_markup+"</ul><div><input class='button' type='image' src='" + SiteConfig.assetBase() + "/images/buttons/send_again.png' alt='Send Again?' value='Send Again?' onclick=\"ContentViewPageSupport.show_email_share_form();return false;\"  /></div></div>");

        /* Hide the form. */
        $('form#cvp_share_email_form').hide();
      }
      else
      {
        var field_errors = json.field_errors;

        var field_errors_markup = '';
        for (var k in field_errors)
        {
          field_errors_markup += '<li>' + k + ': ' + field_errors[k] + '</li>';

          if (k == 'sender_name')
          {
            var sender_name_input= $("input#cvp_share_email_sender_name");
            var sender_name_label = $("label#cvp_share_email_sender_name_label");

            sender_name_input.addClass("error");
            sender_name_label.addClass("error");
          }
          else if (k == 'recipients')
          {
            var recipients_textarea = $("textarea#cvp_share_email_recipients");
            var recipients_label = $("label#cvp_share_email_recipients_label");
            recipients_textarea.addClass("error");
            recipients_label.addClass("error");

            var invalid_emails = json.invalid_emails;
            for (var j = 0; j < invalid_emails.length; j++)
            {
              field_errors_markup += '<li>' + invalid_emails[j] + ' is an invalid email address</li>';
            }

          }
          else if (k == 'send_date')
          {
            var delivery_label = $("label#delivery_label");
            var send_on_label = $("label#cvp_share_email_send_on_label");
            delivery_label.addClass("error");
            send_on_label.addClass("error");
          }
        }

        var errors_container = $("div#cvp_email_share_errors_container");
        
        if (errors_container.size() != 0)
        {
          errors_container.replaceWith("<div id='cvp_email_share_errors_container' class='errors'><strong>Please correct the following errors marked in red and send again</strong><ul>"+ field_errors_markup+"</ul></div>");
        }
        else
        {
          $('form#cvp_share_email_form').prepend("<div id='cvp_email_share_errors_container' class='errors'><strong>Please correct the following errors marked in red and send again</strong><ul>"+ field_errors_markup+"</ul></div>");
        }

      }
    }
    $.post('/share/email.json', data, handler, 'json');
  },
	  
		embed_make_swf: function(client_width, client_height, make_external_key, view_state, service_host, asset_host, category_id)
	{
	    var flashvars = {
	      categoryID: category_id,
				external_make_id: make_external_key,
	      service: service_host,
	      partnerID: "JibJab",
				enableShare: false,
				autoplay: true,
				state: view_state
	    };

	    var params = {
				src: asset_host+"/client/zero/ClientZero_EmbedViewer.swf",
				width: client_width,
				height: client_height,
				align: "middle",
				id: "_movie",
				bgcolor: "#FFFFFF",
				name: "_movie",
	      wmode: "opaque",
	      scaleMode: "showAll",
	      quality: "high",
	      allowNetworking: "all",
	      allowFullScreen: "true",
	      allowScriptAccess: "always"
	    };
	
	    var attributes = {
	      id: "cvp_player"
	    };

			swfobject.embedSWF(asset_host+"/client/zero/ClientZero_EmbedViewer.swf", "cvp_player", client_width, client_height, "9.0.0", false, flashvars, params, attributes);
	}
}

/* End Content View Page */

var eCardSectionPageSupport = {
  _tab_names: ['one', 'two', 'three', 'four'],
  _lb_tab_names: ['popular', 'most_viewed', 'newest'],

  select_tab: function(tab_index) {
    var tab_name = this._tab_names[tab_index];

    /* Clear all first. */
    for (var i = 0; i < this._tab_names.length; i++) {
      var current_tab_name = this._tab_names[i];
      this.disable_tab(current_tab_name);
    }

    /* Enable new active tab. */
    this.enable_tab(tab_name);
  },

  disable_tab: function(tab_name) {
    var content_container = document.getElementById('ecsp_feature_container_' + tab_name); 
    var tab_elem = document.getElementById('ecsp_feature_tab_' + tab_name);
    content_container.className = 'feature';

    if (tab_name == 'one')
      tab_elem.className = 'first';
    else
      tab_elem.className = '';
  },

  enable_tab: function(tab_name) {
    var active_container = document.getElementById('ecsp_feature_container_' + tab_name); 
    var active_tab_elem = document.getElementById('ecsp_feature_tab_' + tab_name);
    active_container.className = 'feature active';

    if (tab_name == 'one')
      active_tab_elem.className = 'active first';
    else
      active_tab_elem.className = 'active';
    
  },

  lb_select_tab: function(tab_index) {
    var tab_name = this._lb_tab_names[tab_index];

    /* Clear all first. */
    for (var i = 0; i < this._lb_tab_names.length; i++) {
      var current_tab_name = this._lb_tab_names[i];
      this.lb_disable_tab(current_tab_name);
    }

    /* Enable new active tab. */
    this.lb_enable_tab(tab_name);
  },

  lb_disable_tab: function(tab_name) {
    var content_container = document.getElementById('leaderboard_' + tab_name + '_container'); 
    var tab_elem = document.getElementById('leaderboard_' + tab_name + '_tab');
    content_container.className = 'items';

    if (tab_name == 'popular')
      tab_elem.className = 'first';
    else
      tab_elem.className = '';
  },

  lb_enable_tab: function(tab_name) {
    var active_container = document.getElementById('leaderboard_' + tab_name + '_container'); 
    var active_tab_elem = document.getElementById('leaderboard_' + tab_name + '_tab');
    active_container.className = 'items active';


    if (tab_name == 'popular')
      active_tab_elem.className = 'active first';
    else
      active_tab_elem.className = 'active';
  }


}

var MyAccountSupport = {
  _payment_history_modal_name: 'dialog',

  get_payment_history_page: function(page_num) {
    $("#dialog").load('/my_account/payment_history', { page: page_num });
  },

  resend_order_receipt: function(o_id) {
    $("#resend_receipt_email_status_" + o_id).load('/my_account/resend_order_receipt', { order_id: o_id });
  }

}


/* Admin Page Elements  */
if(!document.all){
	Node.prototype.swapNode = function (node) {
	  var nextSibling = this.nextSibling;
	  var parentNode = this.parentNode;
	  node.parentNode.replaceChild(this, node);
	  parentNode.insertBefore(node, nextSibling);  
	}
}
var feature_five = {

    order: [],
    // move the elements in the table up or down
    move: function(dir,node){
        this.table = $('feature_five');
        switch(dir){
            case 'up':
                if(node.rowIndex >2) // offset for 2 header rows 
                    this.table.rows[node.rowIndex-1].swapNode(node); 
            break;
            case 'down':
                if(node.rowIndex < this.table.rows.length-2) // offset for get cache row 
                    this.table.rows[node.rowIndex+1].swapNode(node);
            break;
        }
        this.show_save();   
    },
    // get the new order for ajax
    get_order: function(){
        this.order = [];
        for(i=2; i<this.table.rows.length-1; i++){
            this.order.push(this.table.rows[i].cells[0].innerHTML)
        }   
    },
    show_save: function(){
        $('save_status').innerHTML = '';
        $('save_order').style.display = 'inline'
    },
    save_order: function(current_date, site_id){
        this.get_order();
        $('save_status').innerHTML = 'saving...';
        new Ajax.Updater(
        	'save_status', 
        	'/admin/page_elements/feature_five_change_order/?site_id=' + site_id + '&date='+current_date+'&order='+this.order.join(','), 
        	{
        		method: 'get',
        		onSuccess: function(transport){
					setTimeout(function(){
						$('save_order').style.display = 'none';
					},1000);
			        master = ['item1','item2','item3','item4','item5'];
			        for(i=2; i<feature_five.table.rows.length-1; i++){
			            feature_five.table.rows[i].cells[0].innerHTML = master[i-2];
			        }  					
    			}
        	}
        ); 
    }    
}
/* End Page Elements */

var OmnitureHelper = {
	pageView: function(pageName) {
		if (s) {
			s.pageName = pageName;
			s.t();
		}
		return false;

	}
}

/* SELECT ALL */
function SelectAll(id) {
  document.getElementById(id).focus();
  document.getElementById(id).select();
}
/* THAT'S IT! */

// NOTHING BELOW HERE!

// AC_OETags
var isIE=(navigator.appVersion.indexOf("MSIE")!=-1)?true:false;var isWin=(navigator.appVersion.toLowerCase().indexOf("win")!=-1)?true:false;var isOpera=(navigator.userAgent.indexOf("Opera")!=-1)?true:false;
function ControlVersion() {var version;var axo;var e;try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");version=axo.GetVariable("$version");}catch(e){} if(!version) {try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");version="WIN 6,0,21,0";axo.AllowScriptAccess="always";version=axo.GetVariable("$version");}catch(e){}} if(!version) {try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");version=axo.GetVariable("$version");}catch(e){}} if(!version) {try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");version="WIN 3,0,18,0";}catch(e){}} if(!version) {try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");version="WIN 2,0,0,11";}catch(e){version=-1;}} return version;} function GetSwfVer(){var flashVer=-1;if(navigator.plugins!=null&&navigator.plugins.length>0){if(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]){var swVer2=navigator.plugins["Shockwave Flash 2.0"]?" 2.0":"";var flashDescription=navigator.plugins["Shockwave Flash"+swVer2].description;var descArray=flashDescription.split(" ");var tempArrayMajor=descArray[2].split(".");var versionMajor=tempArrayMajor[0];var versionMinor=tempArrayMajor[1];var versionRevision=descArray[3];if(versionRevision==""){versionRevision=descArray[4];} if(versionRevision[0]=="d"){versionRevision=versionRevision.substring(1);}else if(versionRevision[0]=="r"){versionRevision=versionRevision.substring(1);if(versionRevision.indexOf("d")>0){versionRevision=versionRevision.substring(0,versionRevision.indexOf("d"));}} var flashVer=versionMajor+"."+versionMinor+"."+versionRevision;}} else if(navigator.userAgent.toLowerCase().indexOf("webtv/2.6")!=-1)flashVer=4;else if(navigator.userAgent.toLowerCase().indexOf("webtv/2.5")!=-1)flashVer=3;else if(navigator.userAgent.toLowerCase().indexOf("webtv")!=-1)flashVer=2;else if(isIE&&isWin&&!isOpera){flashVer=ControlVersion();} return flashVer;}
function DetectFlashVer(reqMajorVer,reqMinorVer,reqRevision) {versionStr=GetSwfVer();if(versionStr==-1){return false;}else if(versionStr!=0){if(isIE&&isWin&&!isOpera){tempArray=versionStr.split(" ");tempString=tempArray[1];versionArray=tempString.split(",");}else{versionArray=versionStr.split(".");} var versionMajor=versionArray[0];var versionMinor=versionArray[1];var versionRevision=versionArray[2];if(versionMajor>parseFloat(reqMajorVer)){return true;}else if(versionMajor==parseFloat(reqMajorVer)){if(versionMinor>parseFloat(reqMinorVer)) return true;else if(versionMinor==parseFloat(reqMinorVer)){if(versionRevision>=parseFloat(reqRevision)) return true;}} return false;}}
function AC_AddExtension(src,ext) {if(src.indexOf('?')!=-1) return src.replace(/\?/,ext+'?');else return src+ext;}
function AC_Generateobj(objAttrs,params,embedAttrs) {var str='';if(isIE&&isWin&&!isOpera) {str+='<object ';for(var i in objAttrs) str+=i+'="'+objAttrs[i]+'" ';str+='>';for(var i in params) str+='<param name="'+i+'" value="'+params[i]+'" /> ';str+='</object>';}else{str+='<embed ';for(var i in embedAttrs) str+=i+'="'+embedAttrs[i]+'" ';str+='> </embed>';} document.write(str);}
function AC_FL_RunContent(){var ret=AC_GetArgs(arguments,".swf","movie","clsid:d27cdb6e-ae6d-11cf-96b8-444553540000","application/x-shockwave-flash");AC_Generateobj(ret.objAttrs,ret.params,ret.embedAttrs);}
function AC_GetArgs(args,ext,srcParamName,classid,mimeType){var ret=new Object();ret.embedAttrs=new Object();ret.params=new Object();ret.objAttrs=new Object();for(var i=0;i<args.length;i=i+2){var currArg=args[i].toLowerCase();switch(currArg){case"classid":break;case"pluginspage":ret.embedAttrs[args[i]]=args[i+1];break;case"src":case"movie":args[i+1]=AC_AddExtension(args[i+1],ext);ret.embedAttrs["src"]=args[i+1];ret.params[srcParamName]=args[i+1];break;case"onafterupdate":case"onbeforeupdate":case"onblur":case"oncellchange":case"onclick":case"ondblClick":case"ondrag":case"ondragend":case"ondragenter":case"ondragleave":case"ondragover":case"ondrop":case"onfinish":case"onfocus":case"onhelp":case"onmousedown":case"onmouseup":case"onmouseover":case"onmousemove":case"onmouseout":case"onkeypress":case"onkeydown":case"onkeyup":case"onload":case"onlosecapture":case"onpropertychange":case"onreadystatechange":case"onrowsdelete":case"onrowenter":case"onrowexit":case"onrowsinserted":case"onstart":case"onscroll":case"onbeforeeditfocus":case"onactivate":case"onbeforedeactivate":case"ondeactivate":case"type":case"codebase":ret.objAttrs[args[i]]=args[i+1];break;case"id":case"width":case"height":case"align":case"vspace":case"hspace":case"class":case"title":case"accesskey":case"name":case"tabindex":ret.embedAttrs[args[i]]=ret.objAttrs[args[i]]=args[i+1];break;default:ret.embedAttrs[args[i]]=ret.params[args[i]]=args[i+1];}} ret.objAttrs["classid"]=classid;if(mimeType)ret.embedAttrs["type"]=mimeType;return ret;}
// END AC_OETags

// SWFOBJECT 2.1
var swfobject=function(){var b="undefined",Q="object",n="Shockwave Flash",p="ShockwaveFlash.ShockwaveFlash",P="application/x-shockwave-flash",m="SWFObjectExprInst",j=window,K=document,T=navigator,o=[],N=[],i=[],d=[],J,Z=null,M=null,l=null,e=false,A=false;var h=function(){var v=typeof K.getElementById!=b&&typeof K.getElementsByTagName!=b&&typeof K.createElement!=b,AC=[0,0,0],x=null;if(typeof T.plugins!=b&&typeof T.plugins[n]==Q){x=T.plugins[n].description;if(x&&!(typeof T.mimeTypes!=b&&T.mimeTypes[P]&&!T.mimeTypes[P].enabledPlugin)){x=x.replace(/^.*\s+(\S+\s+\S+$)/,"$1");AC[0]=parseInt(x.replace(/^(.*)\..*$/,"$1"),10);AC[1]=parseInt(x.replace(/^.*\.(.*)\s.*$/,"$1"),10);AC[2]=/r/.test(x)?parseInt(x.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof j.ActiveXObject!=b){var y=null,AB=false;try{y=new ActiveXObject(p+".7")}catch(t){try{y=new ActiveXObject(p+".6");AC=[6,0,21];y.AllowScriptAccess="always"}catch(t){if(AC[0]==6){AB=true}}if(!AB){try{y=new ActiveXObject(p)}catch(t){}}}if(!AB&&y){try{x=y.GetVariable("$version");if(x){x=x.split(" ")[1].split(",");AC=[parseInt(x[0],10),parseInt(x[1],10),parseInt(x[2],10)]}}catch(t){}}}}var AD=T.userAgent.toLowerCase(),r=T.platform.toLowerCase(),AA=/webkit/.test(AD)?parseFloat(AD.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,q=false,z=r?/win/.test(r):/win/.test(AD),w=r?/mac/.test(r):/mac/.test(AD);/*@cc_on q=true;@if(@_win32)z=true;@elif(@_mac)w=true;@end@*/return{w3cdom:v,pv:AC,webkit:AA,ie:q,win:z,mac:w}}();var L=function(){if(!h.w3cdom){return }f(H);if(h.ie&&h.win){try{K.write("<script id=__ie_ondomload defer=true src=//:><\/script>");J=C("__ie_ondomload");if(J){I(J,"onreadystatechange",S)}}catch(q){}}if(h.webkit&&typeof K.readyState!=b){Z=setInterval(function(){if(/loaded|complete/.test(K.readyState)){E()}},10)}if(typeof K.addEventListener!=b){K.addEventListener("DOMContentLoaded",E,null)}R(E)}();function S(){if(J.readyState=="complete"){J.parentNode.removeChild(J);E()}}function E(){if(e){return }if(h.ie&&h.win){var v=a("span");try{var u=K.getElementsByTagName("body")[0].appendChild(v);u.parentNode.removeChild(u)}catch(w){return }}e=true;if(Z){clearInterval(Z);Z=null}var q=o.length;for(var r=0;r<q;r++){o[r]()}}function f(q){if(e){q()}else{o[o.length]=q}}function R(r){if(typeof j.addEventListener!=b){j.addEventListener("load",r,false)}else{if(typeof K.addEventListener!=b){K.addEventListener("load",r,false)}else{if(typeof j.attachEvent!=b){I(j,"onload",r)}else{if(typeof j.onload=="function"){var q=j.onload;j.onload=function(){q();r()}}else{j.onload=r}}}}}function H(){var t=N.length;for(var q=0;q<t;q++){var u=N[q].id;if(h.pv[0]>0){var r=C(u);if(r){N[q].width=r.getAttribute("width")?r.getAttribute("width"):"0";N[q].height=r.getAttribute("height")?r.getAttribute("height"):"0";if(c(N[q].swfVersion)){if(h.webkit&&h.webkit<312){Y(r)}W(u,true)}else{if(N[q].expressInstall&&!A&&c("6.0.65")&&(h.win||h.mac)){k(N[q])}else{O(r)}}}}else{W(u,true)}}}function Y(t){var q=t.getElementsByTagName(Q)[0];if(q){var w=a("embed"),y=q.attributes;if(y){var v=y.length;for(var u=0;u<v;u++){if(y[u].nodeName=="DATA"){w.setAttribute("src",y[u].nodeValue)}else{w.setAttribute(y[u].nodeName,y[u].nodeValue)}}}var x=q.childNodes;if(x){var z=x.length;for(var r=0;r<z;r++){if(x[r].nodeType==1&&x[r].nodeName=="PARAM"){w.setAttribute(x[r].getAttribute("name"),x[r].getAttribute("value"))}}}t.parentNode.replaceChild(w,t)}}function k(w){A=true;var u=C(w.id);if(u){if(w.altContentId){var y=C(w.altContentId);if(y){M=y;l=w.altContentId}}else{M=G(u)}if(!(/%$/.test(w.width))&&parseInt(w.width,10)<310){w.width="310"}if(!(/%$/.test(w.height))&&parseInt(w.height,10)<137){w.height="137"}K.title=K.title.slice(0,47)+" - Flash Player Installation";var z=h.ie&&h.win?"ActiveX":"PlugIn",q=K.title,r="MMredirectURL="+j.location+"&MMplayerType="+z+"&MMdoctitle="+q,x=w.id;if(h.ie&&h.win&&u.readyState!=4){var t=a("div");x+="SWFObjectNew";t.setAttribute("id",x);u.parentNode.insertBefore(t,u);u.style.display="none";var v=function(){u.parentNode.removeChild(u)};I(j,"onload",v)}U({data:w.expressInstall,id:m,width:w.width,height:w.height},{flashvars:r},x)}}function O(t){if(h.ie&&h.win&&t.readyState!=4){var r=a("div");t.parentNode.insertBefore(r,t);r.parentNode.replaceChild(G(t),r);t.style.display="none";var q=function(){t.parentNode.removeChild(t)};I(j,"onload",q)}else{t.parentNode.replaceChild(G(t),t)}}function G(v){var u=a("div");if(h.win&&h.ie){u.innerHTML=v.innerHTML}else{var r=v.getElementsByTagName(Q)[0];if(r){var w=r.childNodes;if(w){var q=w.length;for(var t=0;t<q;t++){if(!(w[t].nodeType==1&&w[t].nodeName=="PARAM")&&!(w[t].nodeType==8)){u.appendChild(w[t].cloneNode(true))}}}}}return u}function U(AG,AE,t){var q,v=C(t);if(v){if(typeof AG.id==b){AG.id=t}if(h.ie&&h.win){var AF="";for(var AB in AG){if(AG[AB]!=Object.prototype[AB]){if(AB.toLowerCase()=="data"){AE.movie=AG[AB]}else{if(AB.toLowerCase()=="styleclass"){AF+=' class="'+AG[AB]+'"'}else{if(AB.toLowerCase()!="classid"){AF+=" "+AB+'="'+AG[AB]+'"'}}}}}var AD="";for(var AA in AE){if(AE[AA]!=Object.prototype[AA]){AD+='<param name="'+AA+'" value="'+AE[AA]+'" />'}}v.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+AF+">"+AD+"</object>";i[i.length]=AG.id;q=C(AG.id)}else{if(h.webkit&&h.webkit<312){var AC=a("embed");AC.setAttribute("type",P);for(var z in AG){if(AG[z]!=Object.prototype[z]){if(z.toLowerCase()=="data"){AC.setAttribute("src",AG[z])}else{if(z.toLowerCase()=="styleclass"){AC.setAttribute("class",AG[z])}else{if(z.toLowerCase()!="classid"){AC.setAttribute(z,AG[z])}}}}}for(var y in AE){if(AE[y]!=Object.prototype[y]){if(y.toLowerCase()!="movie"){AC.setAttribute(y,AE[y])}}}v.parentNode.replaceChild(AC,v);q=AC}else{var u=a(Q);u.setAttribute("type",P);for(var x in AG){if(AG[x]!=Object.prototype[x]){if(x.toLowerCase()=="styleclass"){u.setAttribute("class",AG[x])}else{if(x.toLowerCase()!="classid"){u.setAttribute(x,AG[x])}}}}for(var w in AE){if(AE[w]!=Object.prototype[w]&&w.toLowerCase()!="movie"){F(u,w,AE[w])}}v.parentNode.replaceChild(u,v);q=u}}}return q}function F(t,q,r){var u=a("param");u.setAttribute("name",q);u.setAttribute("value",r);t.appendChild(u)}function X(r){var q=C(r);if(q&&(q.nodeName=="OBJECT"||q.nodeName=="EMBED")){if(h.ie&&h.win){if(q.readyState==4){B(r)}else{j.attachEvent("onload",function(){B(r)})}}else{q.parentNode.removeChild(q)}}}function B(t){var r=C(t);if(r){for(var q in r){if(typeof r[q]=="function"){r[q]=null}}r.parentNode.removeChild(r)}}function C(t){var q=null;try{q=K.getElementById(t)}catch(r){}return q}function a(q){return K.createElement(q)}function I(t,q,r){t.attachEvent(q,r);d[d.length]=[t,q,r]}function c(t){var r=h.pv,q=t.split(".");q[0]=parseInt(q[0],10);q[1]=parseInt(q[1],10)||0;q[2]=parseInt(q[2],10)||0;return(r[0]>q[0]||(r[0]==q[0]&&r[1]>q[1])||(r[0]==q[0]&&r[1]==q[1]&&r[2]>=q[2]))?true:false}function V(v,r){if(h.ie&&h.mac){return }var u=K.getElementsByTagName("head")[0],t=a("style");t.setAttribute("type","text/css");t.setAttribute("media","screen");if(!(h.ie&&h.win)&&typeof K.createTextNode!=b){t.appendChild(K.createTextNode(v+" {"+r+"}"))}u.appendChild(t);if(h.ie&&h.win&&typeof K.styleSheets!=b&&K.styleSheets.length>0){var q=K.styleSheets[K.styleSheets.length-1];if(typeof q.addRule==Q){q.addRule(v,r)}}}function W(t,q){var r=q?"visible":"hidden";if(e&&C(t)){C(t).style.visibility=r}else{V("#"+t,"visibility:"+r)}}function g(s){var r=/[\\\"<>\.;]/;var q=r.exec(s)!=null;return q?encodeURIComponent(s):s}var D=function(){if(h.ie&&h.win){window.attachEvent("onunload",function(){var w=d.length;for(var v=0;v<w;v++){d[v][0].detachEvent(d[v][1],d[v][2])}var t=i.length;for(var u=0;u<t;u++){X(i[u])}for(var r in h){h[r]=null}h=null;for(var q in swfobject){swfobject[q]=null}swfobject=null})}}();return{registerObject:function(u,q,t){if(!h.w3cdom||!u||!q){return }var r={};r.id=u;r.swfVersion=q;r.expressInstall=t?t:false;N[N.length]=r;W(u,false)},getObjectById:function(v){var q=null;if(h.w3cdom){var t=C(v);if(t){var u=t.getElementsByTagName(Q)[0];if(!u||(u&&typeof t.SetVariable!=b)){q=t}else{if(typeof u.SetVariable!=b){q=u}}}}return q},embedSWF:function(x,AE,AB,AD,q,w,r,z,AC){if(!h.w3cdom||!x||!AE||!AB||!AD||!q){return }AB+="";AD+="";if(c(q)){W(AE,false);var AA={};if(AC&&typeof AC===Q){for(var v in AC){if(AC[v]!=Object.prototype[v]){AA[v]=AC[v]}}}AA.data=x;AA.width=AB;AA.height=AD;var y={};if(z&&typeof z===Q){for(var u in z){if(z[u]!=Object.prototype[u]){y[u]=z[u]}}}if(r&&typeof r===Q){for(var t in r){if(r[t]!=Object.prototype[t]){if(typeof y.flashvars!=b){y.flashvars+="&"+t+"="+r[t]}else{y.flashvars=t+"="+r[t]}}}}f(function(){U(AA,y,AE);if(AA.id==AE){W(AE,true)}})}else{if(w&&!A&&c("6.0.65")&&(h.win||h.mac)){A=true;W(AE,false);f(function(){var AF={};AF.id=AF.altContentId=AE;AF.width=AB;AF.height=AD;AF.expressInstall=w;k(AF)})}}},getFlashPlayerVersion:function(){return{major:h.pv[0],minor:h.pv[1],release:h.pv[2]}},hasFlashPlayerVersion:c,createSWF:function(t,r,q){if(h.w3cdom){return U(t,r,q)}else{return undefined}},removeSWF:function(q){if(h.w3cdom){X(q)}},createCSS:function(r,q){if(h.w3cdom){V(r,q)}},addDomLoadEvent:f,addLoadEvent:R,getQueryParamValue:function(v){var u=K.location.search||K.location.hash;if(v==null){return g(u)}if(u){var t=u.substring(1).split("&");for(var r=0;r<t.length;r++){if(t[r].substring(0,t[r].indexOf("="))==v){return g(t[r].substring((t[r].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(A&&M){var q=C(m);if(q){q.parentNode.replaceChild(M,q);if(l){W(l,true);if(h.ie&&h.win){M.style.display="block"}}M=null;l=null;A=false}}}}}();
// END SWFOBJECT

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

// AD LOADER
function loadAds() {
	var ads = $(".ad_content");
	if (ads == null) { ads = new Array(); }
	for (var a=0; a<ads.length; a++) {
		ads[a].style.display = "block";
	}
}

addLoadEvent(loadAds);

