// JavaScript Document
$(document).ready(function(){
	if( $('#cdwg_animation').size() > 0 ) swfobject.embedSWF('/wawl/swf/cdwg_animation.swf','cdwg_animation','525','146','8', '', null, {wmode:'transparent'});
	$('.prize').append( $('<span>').addClass('tail') );
	$("form[class^='step']").each(_ajaxBind);
	$('#share-this a').bind('click',_shareThis);
	$('#view-catalog').bind('click',function(_e){ _e.preventDefault(); new LightBox('/wawl/flipbook/fb.htm') });
	$('.hover-tip').bind('click',function(){ $(this).toggleClass('hover') });
	$('a.twitter').bind('click',_sendTwitterEntry);
	_detectIE();
});
function _shareThis(_evt) {
	if( !addthis_sendto(_evt.target.className) ){
		_evt.stopPropagation();
		_evt.preventDefault();
	}
}
function _submitForm(_evt) {
	_evt.stopPropagation();
	_evt.preventDefault();
	$(this).parents('form').submit();
}
function _ajaxBind(i,E){
	var f = $(E);
	f.find('#globalBase input:submit').each(_prettifyButton);
	f.find('a[href^=?]').bind('click',_clickSubmit);
	f.find('input.phone').bind('blur',_phoneFormat).trigger('blur');
	//f.find('a.twitter-share-button').each(_twitterShareInit);
	if( !f.data('validating') )
		f.data('validating',true).bind('submit',_validateForm);
}
function _prettifyButton(i,E){
	$(E).hide().after( $('<a>').attr({href:'#'}).addClass('submit').append($('<span>').text($(E).val())).bind('click',_submitForm) );
}
function _phoneFormat () {
	var n = $(this).val().match(_rules.phone.regexp);
	if ( n ) {
		$(this).val('('+n[1]+') '+n[2]+'-'+n[3]);
	}
}
function _getLabel(E) {
	var a=$(E).attr('id'), b;
	if ( a ) {
		b=$('label[for='+a+']');
	} else {
		b=$(E).parents('label');
	}
	return b.size()?b.eq(0):$(E);
}
function _validateForm(_evt){
	var err=false;
	
	$('.error',this).removeClass('error').attr({title:false});
	
	if( $('.req[value=""]',this).each(_reqField).size() > 0 ) err = true;
	
	var a ={};
	$('input[type=radio]',this).each(function(i,E){
		var n=$(E).attr('name'); 
		a[n] = (a[n] || $(E).is(':checked') );
	});
	
	for(var x in a){
		if( !a[x] ) {
			$('input[type=radio][name='+x+']').eq(0).parents('[id]').eq(0).each(_reqRadio);
			err = true;
		}
	}
	
	if( $('input.req:checkbox:not(:checked)',this).each(_reqCheckbox).size() > 0 ) err = true;
	
	for( var x in _rules ) $('.'+x,this).each(function(i,E){
		var v=$(E).val()
		if(v && !v.match(_rules[x].regexp)){
			$('label[for="'+$(E).attr('id')+'"]').addClass('error').attr('title',_rules[x].msg);
			err = true;
		}
	});
	if( !err ) {
		_ajaxFormSubmit(this);
	} else {
		_focusLabel($('.error',this));
	}
	_evt.stopPropagation();
	_evt.preventDefault();
}
function _focusLabel(ref) {
	var a=ref.attr('for');
	if (a) {
		$('#'+a).focus();
	}
}
function _insertHiddenFields(f,d) {
	var g=d.split('&'), opts={type:'hidden'}, a;
	for(i=0,j=g.length;i<j;i++) {
		a=g[i].split('=');
		opts.name=a[0];
		opts.value=a.length>1?a[1]:'';
		f.append($('<input>').attr(opts));
	}
}
function _ajaxFormSubmit(f) {
	var b=$(f);
	$.ajax({
		url: '/wawl/xhr/',
		data: b.serializeArray(),
		type: 'POST',
		dataType: 'json',
		success:function(j){ 
			b.attr('class','step'+j.STEP).html(j.HTML).each(_ajaxBind); 
			window.scrollTo(0, 150);
		}
	});
	b.find(':input').attr('disabled','disabled');
}
function _clickSubmit(_evt){
	var t=$(this);
		h = t.attr('href'),
		f = t.parents('form');
	if( h.indexOf('?') > -1 ) {
		_evt.stopPropagation();
		_evt.preventDefault();
		_insertHiddenFields(f,h.split('?').pop());
		_ajaxFormSubmit(f);
	}
}
var _rules = {
	email: {regexp:/^[a-z0-9._-]+@([a-z0-9-]+\.)+[a-z]{2,6}$/i,msg:'Enter a valid email address'},
	phone: {regexp:/^\W?(\d{3})\W*(\d{3})\W?(\d{4})$/,msg:'Enter a 10-digit phone number'},
	numeric: {regexp:/^\d+$/i,msg:'Enter a number'},
	zip: {regexp:/^\d{5}(-\d{4})?$/,msg:'Enter a valid zip code'}
};
function _reqField(i,E){
	_getLabel(E).addClass('error').attr('title','This field is required');
}
function _reqRadio(i,E){
	_getLabel(E).addClass('error').attr('title','Select an option');
}
function _reqCheckbox(i,E){
	_getLabel(E).addClass('error').attr('title','You must check here to continue');
}
function _reqMinAge(i,E){
	_getLabel(E).addClass('error').attr('title','You must be at least '+_getPrefixVal('min_age',$(E).attr('class'))+' to submit the form');
}
function _reqMaxAge(i,E){
	_getLabel(E).addClass('error').attr('title','You must be no older than '+_getPrefixVal('max_age',$(E).attr('class'))+' to submit the form');
}
function _dateGetMinAge(i,E){
	var dob = new Date( $(E).val() );
	var age = parseInt( _getPrefixVal('min_age',$(E).attr('class'),0) );
	if( !age ) return;
	if( !isNaN(dob.getTime()) ){
		dob.setFullYear( dob.getFullYear()+age );
		$(E)[dob>Date.now()?'addClass':'removeClass']('under_age');
	}
}
function _dateGetMaxAge(i,E){
	var dob = new Date( $(E).val() );
	var age = parseInt( _getPrefixVal('max_age',$(E).attr('class'),0) );
	if( !age ) return;
	if( !isNaN(dob.getTime()) ){
		dob.setFullYear( dob.getFullYear()+age+1 );
		$(E)[dob<Date.now()?'addClass':'removeClass']('over_age');
	}
}
function LightBox (url) {
	var container = $('<div>').addClass('overlay');
	addShadow();
	addContent();
	addCloseButton();
	$('body').append( container );
	$.ajax({url:url,success:setContent});
	function setContent(html) {
		container.find('.overlay-content').html(html);
	}
	function getLoader() {
		return $('<div>').addClass('loading').text('Loading');
	}
	function closeLB(_evt) {
		container.remove();
	}
	function addShadow() {
		container.append( $('<div>').addClass('overlay-shadow') );
	}
	function addContent() {
		container.append( $('<div>').addClass('overlay-content').append( getLoader() ) );
	}
	function addCloseButton() {
		container.append( $('<a>').attr({href:'#',title:'Close'}).addClass('close-button').text('Close').bind('click',closeLB) );
	}
}
function _ie7fix () {
	$('label + :input').each( function(i,E) { $(E).prev().andSelf().wrapAll('<div class="float-wrapper">'); });
	var _h = $('#main-content .white-out');
	if( _h.height() == 0 && _h.parent().height() > 697 ){ _h.height( _h.parent().height()-697 ) };
}
function _detectIE() {
	var _x,k;
	for(var _x in document.styleSheets){
		k = document.styleSheets[_x].href;
		if( k && k.match(/ie7/)){
			_ie7fix();
			break;
		}
	}
}
function _twitterClickDetect() {
	if( $('iframe.twitter-share-button').bind('mouseover.twitterEntry',function(){ $(this).unbind('mouseover.twitterEntry'); new _detectMouseIdleJump(_sendTwitterEntry); }).size() == 0) setTimeout(_twitterClickDetect,500);
}
function _twitterShareInit(i,E) {
	if (i>0) return;
	var g=$(E).attr('href').split('=').pop();
	_sendTwitterEntry = _getTwitterFunc(g);
	$.getScript('http://platform.twitter.com/widgets.js',_twitterClickDetect);
}
function _sendTwitterEntry() {
	if( _getCookieValue('SWEEPS_GUID') )
		$.ajax({url:'/wawl/enter/tweet/?noRedirect'});
}
function _getTwitterFunc(guid) {
	return function(){$.ajax({url:'/wawl/enter/tweet/?noRedirect&guid='+guid});};
}
function _detectMouseIdleJump(_func) {
	var pageX=null, pageY=null, pageZ=Date.now(), deltaD=5, deltaZ=1500;
	$(document).bind('mousemove.detectMij',updateMouse);
	function updateMouse(_evt) {
		var newX = _evt.pageX,
			newY = _evt.pageY,
			newZ = Date.now();
		if ( newZ-pageZ>deltaZ && dist(newX,newY,pageX,pageY)>deltaD )
			triggerEvent();
		pageX=newX;
		pageY=newY;
		pageZ=newZ;
	}
	function dist(x1,y1,x2,y2) {
		return Math.sqrt(Math.pow(x1-x2,2)+Math.pow(y1-y2,2));
	}
	function triggerEvent() {
		$(document).unbind('mousemove.detectMij');
		_func();
	}
}
function _getCookieValue(key) {
	if( !document.cookie ) return null;
	var a=document.cookie.split('; '), b={};
	$.each(a,function(i,E){ var c=E.split('='); b[decodeURI(c.shift())]=decodeURI(c.shift()); });
	return (key in b)?b[key]:null;
}
if ( !('now' in Date) ){
	Date.now = function () { var a = new Date(); return a.getTime(); }
}

