var $j = jQuery.noConflict();

function js_array_to_php_array (a) {
    // This converts a javascript array to a string in PHP serialized format.
    // This is useful for passing arrays to PHP. On the PHP side you can
    // unserialize this string from a cookie or request variable. For example,
    // assuming you used javascript to set a cookie called "php_array"
    // to the value of a javascript array then you can restore the cookie
    // from PHP like this:
    // <?php
    // session_start();
    // $my_array = unserialize(urldecode(stripslashes($_COOKIE['php_array'])));
    // print_r ($my_array);
    // ?>
    // This automatically converts both keys and values to strings.
    // The return string is not URL escaped, so you must call the
    // Javascript "escape()" function before you pass this string to PHP.

    var a_php = "";
    var total = 0;
    for (var key in a) {
	total++;
	a_php = a_php+"s:"+String(key).length+":\""+String(key)+"\";s:"+String(a[key]).length+":\""+String(a[key])+"\";";
    }
    a_php = "a:"+total+":{"+a_php+"}";
    return a_php;
}


(function($) {
    $.fn.batchImageLoad = function(options) {
	var images = $(this);
	var originalTotalImagesCount = images.size();
	var totalImagesCount = originalTotalImagesCount;
	var elementsLoaded = 0;

	// Init
	$.fn.batchImageLoad.defaults = {
	    loadingCompleteCallback: null, 
	    imageLoadedCallback: null
	}
	var opts = $.extend({}, $.fn.batchImageLoad.defaults, options);
		
	// Start
	images.each(function() {
	    // The image has already been loaded (cached)
	    if ($(this)[0].complete) {
		totalImagesCount--;
		if (opts.imageLoadedCallback) opts.imageLoadedCallback(elementsLoaded, originalTotalImagesCount);
	    // The image is loading, so attach the listener
	    } else {
		$(this).load(function() {
		    elementsLoaded++;
		    if (opts.imageLoadedCallback) opts.imageLoadedCallback(elementsLoaded, originalTotalImagesCount);

		    // An image has been loaded
		    if (elementsLoaded >= totalImagesCount)
			if (opts.loadingCompleteCallback) opts.loadingCompleteCallback();
		});
		$(this).error(function() {
		    elementsLoaded++;
			
		    if (opts.imageLoadedCallback) opts.imageLoadedCallback(elementsLoaded, originalTotalImagesCount);
				
		    // The image has errored
		    if (elementsLoaded >= totalImagesCount)
			if (opts.loadingCompleteCallback) opts.loadingCompleteCallback();
		});
	    }
	});

	// There are no unloaded images
	if (totalImagesCount <= 0)
	    if (opts.loadingCompleteCallback) opts.loadingCompleteCallback();
    };
})(jQuery);

function ucwords(str) {
    return (str + '').replace(/^(.)|\s(.)/g, function($1){
	return $1.toUpperCase();
    });
}

function toUnicode(theString) {
    theString = stringToHtmlCode(theString);
    var unicodeString = '';
    for (var i=0; i < theString.length; i++) {
	if (matchSpecialChars(theString.charAt(i))) {
	    var theUnicode = theString.charCodeAt(i).toString(16).toUpperCase();
	    while (theUnicode.length < 4) {
		theUnicode = '0' + theUnicode;
	    }
	    theUnicode = 'U' + theUnicode;
	    unicodeString += theUnicode;
	} else {
	    unicodeString += theString.charAt(i);
	}
    }
    return unicodeString;
}

function matchSpecialChars(string) {
    var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?~_"; 
    for (var i = 0; i < string.length; i++) {
	if (iChars.indexOf(string.charAt(i)) != -1) {
	    return true;
	}
    }
    return false;
}

function stringToHtmlCode(str) {
    str = str.replace(/&/g, "&amp;");
    str = str.replace(/>/g, "&gt;");
    str = str.replace(/</g, "&lt;");
    str = str.replace(/\\/g, "");
    return str;
}

function createCookie(name,value,days) {
    if (days) {
	    var date = new Date();
	    date.setTime(date.getTime()+(days*24*60*60*1000));
	    var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
	var c = ca[i];
	while (c.charAt(0)==' ') c = c.substring(1,c.length);
	if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}

function buildSignupForm(track1, track2, track3) {
	
    track1 = typeof(track1) != 'undefined' ? track1 : '';
    track2 = typeof(track2) != 'undefined' ? track2 : '';
    track3 = typeof(track3) != 'undefined' ? track3 : '';
    
    var htmlstring = '';
    
    htmlstring += '\
	<div class="ct-popform-bg" style="position:relative; width: 684px; height: 323px;">\
	    <div style="position:absolute; top:5px; right:5px; cursor:pointer;"><img src="http://c248182.r82.cf1.rackcdn.com/Mooo-sign-up-splash-screen-close.gif" onclick="TINY.box.hide();" /></div>\
	    <div style="position:absolute; bottom:10px; left:20px; width:320px;">\
		<div id="mc_embed_signup">\
		    <form action="http://mooo.us2.list-manage.com/subscribe/post?u=493f01656a144d8f72e834b89&amp;id=07870a1feb" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" onsubmit="return validate_signup_pop(this, '+track1+', '+track2+', '+track3+');">\
			<fieldset style="text-align: left;">\
			    <div class="mc-field-group" style="clear: both;">\
				<input type="text" value="First Name" name="FNAME" class="signup2" id="mce-FNAME" maxlength="150" rel="First Name" onclick="wipeel_pop(this);" onblur="resetel_pop(this);" />\
			    </div>\
			    <div class="mc-field-group" style="clear: both;">\
				<input type="text" value="Email Address" name="EMAIL" class="required email signup2" id="mce-EMAIL" maxlength="150" rel="Email Address" onclick="wipeel_pop(this);" onblur="resetel_pop(this);" />\
			    </div>\
			    <div>\
				<img src="http://c248182.r82.cf1.rackcdn.com/Mooo-sign-up-splash-screen_button_1.gif" width="152" height="37" style="float:left; cursor:pointer;" onclick="TINY.box.hide();" />\
				<input type="image" src="http://c248182.r82.cf1.rackcdn.com/Mooo-sign-up-splash-screen_button_2.gif" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="btn signup-but" />\
			    </div>\
			    <input type="hidden" value="1" name="group[1][1]" id="mce-group[1]-1-0">\
			</fieldset>\
		    </form>\
		</div>\
	    </div>\
	</div>\
    ';
    return htmlstring;
}

function buildSignupForm_tinyme(track1, track2, track3) {
	
    track1 = typeof(track1) != 'undefined' ? track1 : '';
    track2 = typeof(track2) != 'undefined' ? track2 : '';
    track3 = typeof(track3) != 'undefined' ? track3 : '';
    
    var htmlstring = '';
    
    htmlstring += '\
	<div class="ct-popform-bg-tinyme" style="position:relative; width: 684px; height: 323px;">\
	    <div style="position:absolute; top:5px; right:5px; cursor:pointer;"><img src="http://c248182.r82.cf1.rackcdn.com/Mooo-sign-up-splash-screen-close.gif" onclick="TINY.box.hide();" /></div>\
	    <div style="position:absolute; bottom:0; left:20px; width:320px;">\
		<div id="mc_embed_signup">\
		    <form action="http://tinyme.us2.list-manage2.com/subscribe/post?u=493f01656a144d8f72e834b89&amp;id=7015c5f543" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" onsubmit="return validate_signup_pop(this, '+track1+', '+track2+', '+track3+');">\
			<fieldset style="text-align: left;">\
			    <div class="mc-field-group" style="clear: both;">\
				<input type="text" value="First Name" name="FNAME" class="signup2" id="mce-FNAME" maxlength="150" rel="First Name" onclick="wipeel_pop(this);" onblur="resetel_pop(this);" />\
			    </div>\
			    <div class="mc-field-group" style="clear: both;">\
				<input type="text" value="Email Address" name="EMAIL" class="required email signup2" id="mce-EMAIL" maxlength="150" rel="Email Address" onclick="wipeel_pop(this);" onblur="resetel_pop(this);" />\
			    </div>\
			    <div>\
				<img src="http://c248182.r82.cf1.rackcdn.com/Mooo-sign-up-splash-screen_button_1.gif" width="152" height="37" style="float:left; cursor:pointer;" onclick="TINY.box.hide();" />\
				<input type="image" src="http://c248182.r82.cf1.rackcdn.com/Mooo-sign-up-splash-screen_button_2.gif" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="btn signup-but" />\
			    </div>\
			    <input type="hidden" value="1" name="group[1][1]" id="mce-group[1]-1-0">\
			</fieldset>\
		    </form>\
		</div>\
	    </div>\
	</div>\
    ';
    
    return htmlstring;
}

function wipeel_pop(el) {
    if(el.value == el.getAttribute('rel'))  {
	el.value = '';
    }
}
function resetel_pop(el) {
    if(el.value == '') {
	el.value = el.getAttribute('rel');
    } 
}
function validate_signup_pop(thisform, track1, track2, track3) {

    track1 = typeof(track1) != 'undefined' ? track1 : '';
    track2 = typeof(track2) != 'undefined' ? track2 : '';
    track3 = typeof(track3) != 'undefined' ? track3 : '';
	
    if(document.getElementById('mce-FNAME').value == '') {
	alert('Please enter your first name');
	document.getElementById('mce-EMAIL').focus();
	document.getElementById('mce-EMAIL').select();
	return false;	
    } else if(!validateEmail_pop(document.getElementById('mce-EMAIL').value)) {
	alert('Please enter a valid email address');
	document.getElementById('mce-EMAIL').focus();
	document.getElementById('mce-EMAIL').select();
	return false;
    }
    _gaq.push(['_trackEvent', track1, track2, track3]);
}
function validateEmail_pop(email) { 
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ 
    return email.match(re) 
}


/*Birthday Club*/

function buildBdayForm() {
    
    return '<div class="bd-form-wrap">\
	<div class="bd-bg-top">&nbsp;</div>\
	<img id="bd-but-close" src="http://c260789.r89.cf1.rackcdn.com/bd-but-close.jpg" width="42" height="42" alt="Close" />\
	<div class="bd-text-block"><img src="http://c260789.r89.cf1.rackcdn.com/bd-text-block.jpg" width="391" height="107" /></div>\
	<form id="bc-form">\
	    <div id="bd-formy">\
		<div id="bd-fields-cont">\
		    <div class="bd-row">\
			<label for="">STEP 1: Your details</label>\
			<input type="text" id="db-parent-name" name="db-parent-name" maxlength="50" value="First Name" rel="First Name" onclick="wipeel_pop(this);" onblur="resetel_pop(this);" />\
			<input class="bd-email" type="text" id="db-parent-email" name="db-parent-email" maxlength="100" value="Email" rel="Email" onclick="wipeel_pop(this);" onblur="resetel_pop(this);" />\
		    </div>\
		    <div class="bd-row">\
			<label for="">STEP 2: Your kids</label>\
			<input type="text" id="db-kid-name-1" name="db-kid-name-1" maxlength="50" value="First Name" rel="First Name" onclick="wipeel_pop(this);" onblur="resetel_pop(this);" />\
			<select class="bd-date" id="db-kid-day-1" name="db-kid-day-1">\
			    <option value="01">1</option>\
			    <option value="02">2</option>\
			    <option value="03">3</option>\
			    <option value="04">4</option>\
			    <option value="05">5</option>\
			    <option value="06">6</option>\
			    <option value="07">7</option>\
			    <option value="08">8</option>\
			    <option value="09">9</option>\
			    <option value="10">10</option>\
			    <option value="11">11</option>\
			    <option value="12">12</option>\
			    <option value="13">13</option>\
			    <option value="14">14</option>\
			    <option value="15">15</option>\
			    <option value="16">16</option>\
			    <option value="17">17</option>\
			    <option value="18">18</option>\
			    <option value="19">19</option>\
			    <option value="20">20</option>\
			    <option value="21">21</option>\
			    <option value="22">22</option>\
			    <option value="23">23</option>\
			    <option value="24">24</option>\
			    <option value="25">25</option>\
			    <option value="26">26</option>\
			    <option value="27">27</option>\
			    <option value="28">28</option>\
			    <option value="29">29</option>\
			    <option value="30">30</option>\
			    <option value="31">31</option>\
			</select>\
			<select class="bd-date" id="db-kid-month-1" name="db-kid-month-1">\
			    <option value="1">Jan</option>\
			    <option value="2">Feb</option>\
			    <option value="3">Mar</option>\
			    <option value="4">Apr</option>\
			    <option value="5">May</option>\
			    <option value="6">Jun</option>\
			    <option value="7">Jul</option>\
			    <option value="8">Aug</option>\
			    <option value="9">Sep</option>\
			    <option value="10">Oct</option>\
			    <option value="11">Nov</option>\
			    <option value="12">Dec</option>\
			</select>\
			<select id="db-kid-year-1" name="db-kid-year-1">\
			    <option value="1998">1998</option>\
			    <option value="1999">1999</option>\
			    <option value="2000">2000</option>\
			    <option value="2001">2001</option>\
			    <option value="2002">2002</option>\
			    <option value="2003">2003</option>\
			    <option value="2004">2004</option>\
			    <option value="2005">2005</option>\
			    <option value="2006">2006</option>\
			    <option value="2007">2007</option>\
			    <option value="2008">2008</option>\
			    <option value="2009">2009</option>\
			    <option value="2010">2010</option>\
			    <option value="2011">2011</option>\
			    <option value="2012">2012</option>\
			</select>\
			<select class="bd-gender-field" id="db-kid-gender-1" name="db-kid-gender-1">\
			    <option value="M">Boy</option>\
			    <option value="F">Girl</option>\
			</select>\
		    </div>\
		</div>\
		<img id="bd-add-more" src="http://c260789.r89.cf1.rackcdn.com/bd-but-add.jpg" width="180" height="42" alt="+ (Add more kids)" />\
	    </div>\
	    <div class="bd-buttons-cont">\
		<img id="bd-but-no" src="http://c260789.r89.cf1.rackcdn.com/bd-but-no.jpg" width="258" height="59" border="0" />\
		<div class="db-submit"><img id="db-submit" src="http://c260789.r89.cf1.rackcdn.com/bd-but-join.jpg" width="261" height="59" border="0" /></div>\
		<div style="bottom:-52px; clear:both; font-size:12px; position:absolute; width:258px; text-align:center;"><a style="color:#555555; text-decoration:none;" href="http://www.mooo.com.au/birthday_club_unsubscribe">Unsubscribe from Birthday Club</a></div>\
	    </div>\
	</form>\
	<div class="bd-bg-bot">&nbsp;</div>\
	<div class="bd-monkey-bg">&nbsp;</div>\
    </div>';
    
}

var bd_field_count = 1;
    
$j(document).ready(function() {
    $j('#bd-add-more').live('click', function() {
	if(bd_field_count < 8) { add_bd_fields(); }
	if(bd_field_count >= 8) { $j('#bd-add-more').remove(); }
	$j('.bd-form-wrap').closest('#tinybox').height('auto');
    });
    
    $j('#db-submit').live('click', function() {
	if(validateBdayForm()) {
	    $j.ajax({
		type: 'POST',
		url: 'http://www.mooo.com.au/adminmodule/ajax/bdayclub',
		data: $j('#bc-form').serialize(),
		success: (function() {
		    $j('.bd-text-block').remove();
		    $j('#bd-formy').remove();
		    $j('#bd-but-no').remove();
		    $j('.db-submit').remove();
		    $j('.bd-bg-top').css('background-image', "url('http://c260789.r89.cf1.rackcdn.com/bd-thanks-top.png')");
		    $j('.bd-monkey-bg').css({'background-image': "url('http://c260789.r89.cf1.rackcdn.com/bd-thanks-bg.png')", 'width': '577', 'height': '144'});
		    $j('#bc-form').prepend('<div class="bd-thanks-text">You will be hearing about exclusive offers and special personalisation promo\'s as your cheeky monkeys approach their birthdays!</div>');
		    $j('.bd-buttons-cont').append('<img id="bd-finish2" src="http://c260789.r89.cf1.rackcdn.com/bd-but-back.jpg" width="281" height="59" border="0" />');
		    _gaq.push(['_trackEvent', 'birthdayclub', 'subscribe', 'popup']);
		}),
		error: (function() { alert("Error, please try again."); })
	    });
	    $j('.db-submit').html('<img id="bd-finish" src="http://c260789.r89.cf1.rackcdn.com/loader.gif" border="0" style="margin-top:15px;" />');
	}
    });
	
    $j('#bd-but-no').live('click', function() {
	TINY.box.hide();
	bd_field_count = 1;
    });
    $j('#bd-but-close').live('click', function() {
	TINY.box.hide();
	bd_field_count = 1;
    });
    $j('#bd-finish2').live('click', function() {
	TINY.box.hide();
	bd_field_count = 1;
    });
    
    $j('.bd-club-link').click(function() {
	TINY.box.show(buildBdayForm(),0,1000,0,1,'');
	$j('#tinymask').css('z-index', '1000001');
	$j('#tinybox').css('z-index', '1000002');
	$j('#tinycontent').css('padding', '15px');
	$j('.bd-form-wrap').parent().addClass('ct-force-bdclub');
    });
    
    $j('.mooo-feedback-footer-link').click(function(){
	FBY.showForm('1188');
	return false;
    });
    $j('.tinyme-feedback-footer-link').click(function(){
	FBY.showForm('899');
	return false;
    });
});

function validateBdayForm() {
	
    if($j('#db-parent-name').val() == '' || $j('#db-parent-name').val() == $j('#db-parent-name').attr('rel')) {
	alert('Please enter your first name!');
	$j('#db-parent-name').select();
	return false;
    } else if(!validateEmail_pop($j('#db-parent-email').val())) {
	alert('Please enter a valid email address!');
	$j('#db-parent-email').select();
	return false;
    }
    
    for(var i=1; i<=8; i++) {
	if($j('#db-kid-name-'+i).length > 0) {
	    if($j('#db-kid-name-'+i).val() == '' || $j('#db-kid-name-'+i).val() == $j('#db-kid-name-'+i).attr('rel')) {
		alert('Please enter your child\'s name!');
		$j('#db-kid-name-'+i).select();
		return false;
	    }
	}
    }
    
    _gaq.push(['_trackEvent', 'birthdayclub', 'subscribe', 'bc-popup']);
    
    return true;
}

function add_bd_fields() {
    bd_field_count++;
    
    $j('#bd-fields-cont').append(
	'\
	<div class="bd-row">\
	    <input type="text" id="db-kid-name-'+bd_field_count+'" name="db-kid-name-'+bd_field_count+'" maxlength="50" value="First Name" rel="First Name" onclick="wipeel_pop(this);" onblur="resetel_pop(this);" />\
	    <select class="bd-date" id="db-kid-day-'+bd_field_count+'" name="db-kid-day-'+bd_field_count+'">\
		<option value="01">1</option>\
		<option value="02">2</option>\
		<option value="03">3</option>\
		<option value="04">4</option>\
		<option value="05">5</option>\
		<option value="06">6</option>\
		<option value="07">7</option>\
		<option value="08">8</option>\
		<option value="09">9</option>\
		<option value="10">10</option>\
		<option value="11">11</option>\
		<option value="12">12</option>\
		<option value="13">13</option>\
		<option value="14">14</option>\
		<option value="15">15</option>\
		<option value="16">16</option>\
		<option value="17">17</option>\
		<option value="18">18</option>\
		<option value="19">19</option>\
		<option value="20">20</option>\
		<option value="21">21</option>\
		<option value="22">22</option>\
		<option value="23">23</option>\
		<option value="24">24</option>\
		<option value="25">25</option>\
		<option value="26">26</option>\
		<option value="27">27</option>\
		<option value="28">28</option>\
		<option value="29">29</option>\
		<option value="30">30</option>\
		<option value="31">31</option>\
	    </select>\
	    <select class="bd-date" id="db-kid-month-'+bd_field_count+'" name="db-kid-month-'+bd_field_count+'">\
		<option value="1">Jan</option>\
		<option value="2">Feb</option>\
		<option value="3">Mar</option>\
		<option value="4">Apr</option>\
		<option value="5">May</option>\
		<option value="6">Jun</option>\
		<option value="7">Jul</option>\
		<option value="8">Aug</option>\
		<option value="9">Sep</option>\
		<option value="10">Oct</option>\
		<option value="11">Nov</option>\
		<option value="12">Dec</option>\
	    </select>\
	    <select id="db-kid-year-'+bd_field_count+'" name="db-kid-year-'+bd_field_count+'">\
		<option value="1998">1998</option>\
		<option value="1999">1999</option>\
		<option value="2000">2000</option>\
		<option value="2001">2001</option>\
		<option value="2002">2002</option>\
		<option value="2003">2003</option>\
		<option value="2004">2004</option>\
		<option value="2005">2005</option>\
		<option value="2006">2006</option>\
		<option value="2007">2007</option>\
		<option value="2008">2008</option>\
		<option value="2009">2009</option>\
		<option value="2010">2010</option>\
		<option value="2011">2011</option>\
		<option value="2012">2012</option>\
	    </select>\
	    <select class="bd-gender-field" id="db-kid-gender-'+bd_field_count+'" name="db-kid-gender-'+bd_field_count+'">\
		<option value="M">Boy</option>\
		<option value="F">Girl</option>\
	    </select>\
	</div>\
	'
    );
    
}

function zoomBig(src) {
    src = src.replace(/size.*?\]/, 'size[488x488]');
    var aichteeemel = '<div style="position:relative; display:block; width:488px; height:488px; text-align:center;"><div class="ct-lightbox-close" style="top:0; right:0;" title="Click to close">&nbsp;</div><img src="'+src+'" /></div>';
    TINY.box.show(aichteeemel,0,518,518,1,'');
    
    $j('.ct-lightbox-close').live('click', function() {
	TINY.box.hide();
    });
}

function getUrlVars() {
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}
