<!--
var Dom = YAHOO.util.Dom;
var Event = YAHOO.util.Event;
YAHOO.namespace("mycoupons");

/* The list of Objects:
 listenerObject
 headerObject
 contentObject
 ajaxFormObject
 ajaxObject
 helperObject
 calendarObject
 productObject
 offerObject
 merchantObject
 memberObject
*/

// All event listeners will be in this object
YAHOO.mycoupons.listenerObject = {
	addCategoryInit:function(){
		Event.addListener('edit_merchant_add_category', "click", YAHOO.mycoupons.merchantObject.addCategory); 
	},
	submitCodeCalendarInit:function(){ 
		YAHOO.mycoupons.calendarObject.calendarInit('submit_code_expiration_container','submit_code_expiration','Select An Expiration Date');
		YAHOO.mycoupons.merchantObject.merchantSuggestInit();
		Event.addListener('submit_code_button','click', YAHOO.mycoupons.offerObject.handleSubmitCodeSubmit);
		Event.addListener('submit_code_type_code','click', YAHOO.mycoupons.offerObject.handleSubmitCodeType);
		Event.addListener('submit_code_type_printable','click', YAHOO.mycoupons.offerObject.handleSubmitCodeType);
	},
	submitNewsletterInit:function(){ 
		Event.addListener('submit_newsletter_button','click', YAHOO.mycoupons.headerObject.handleNewsletterSubmit);
	},
	submitContactInit:function(){ 
		Event.addListener('submit_contact_button','click', YAHOO.mycoupons.headerObject.handleContactSubmit);
	},
	editCodeCalendarInit:function(){ 
		YAHOO.mycoupons.calendarObject.calendarInit('submit_code_expiration_container','submit_code_expiration','Add Expiration Date');
	},
	tabOffersInit:function(){
		Event.addListener('tab_offers_header', "click", YAHOO.mycoupons.contentObject.viewHideTabs); 
		Event.addListener('tab_offer_left', "click", YAHOO.mycoupons.contentObject.viewHideTabs); 
		Event.addListener('tab_offer_middle', "click", YAHOO.mycoupons.contentObject.viewHideTabs); 
		Event.addListener('tab_offer_right', "click", YAHOO.mycoupons.contentObject.viewHideTabs); 
	},
	tabProductsInit:function(){
		Event.addListener('tab_products_header', "click", YAHOO.mycoupons.contentObject.viewHideTabs); 
		Event.addListener('tab_product_left', "click", YAHOO.mycoupons.contentObject.viewHideTabs); 
		Event.addListener('tab_product_right', "click", YAHOO.mycoupons.contentObject.viewHideTabs); 
		Event.addListener('tab_product_middle', "click", YAHOO.mycoupons.contentObject.viewHideTabs); 
	},
	tabLocalInit:function(){
		Event.addListener('tab_local_header', "click", YAHOO.mycoupons.contentObject.viewHideTabs); 
		Event.addListener('tab_local_left', "click", YAHOO.mycoupons.contentObject.viewHideTabs); 
		Event.addListener('tab_local_right', "click", YAHOO.mycoupons.contentObject.viewHideTabs); 
		Event.addListener('tab_local_middle', "click", YAHOO.mycoupons.contentObject.viewHideTabs); 
	},
	submitMerchantCodeInit:function(){
		Event.addListener('merchant_submit_code', "click", YAHOO.mycoupons.offerObject.getSubmitCodeForm); 
	},
	signupInit:function(){
		Event.addListener('submit_signup', "click", YAHOO.mycoupons.memberObject.checkSignup); 
	},
	avatarImageInit:function(){
		Dom.replaceClass('profile_avatar','avatar_hidden','image_visible');
		var iWidth = Dom.get('profile_avatar').width;
		Dom.replaceClass('profile_avatar','image_visible','avatar_hidden');
		if (iWidth){
			YAHOO.mycoupons.helperObject.correctBanner(null, Dom.get('profile_avatar'));
		}
		else {
			Event.addListener('profile_avatar', "load", YAHOO.mycoupons.helperObject.correctBanner, Dom.get('profile_avatar'));
		}
	},
	largeProductImageInit:function(){
		Dom.replaceClass('large_product_image','large_product_image','image_visible');
		var iWidth = Dom.get('large_product_image').width;
		Dom.replaceClass('large_product_image','image_visible','large_product_image');
		if (iWidth){
			YAHOO.mycoupons.helperObject.correctBanner(null, Dom.get('large_product_image'));
		}
		else {
			Event.addListener('large_product_image', "load", YAHOO.mycoupons.helperObject.correctBanner, Dom.get('large_product_image'));
		}
	},
	profileFormInit:function(){
		Event.addListener('profile_submit_button', "click", YAHOO.mycoupons.memberObject.submitProfileForm); 
		Event.addListener('profile_password_button', "click", YAHOO.mycoupons.memberObject.getChangePasswordForm); 
		YAHOO.mycoupons.calendarObject.calendarInit('profile_birthday_container','profile_birthday','Select Your Birthday');
	},
	emailNotificationInit:function(){
		Event.addListener('email_notification_button', "click", YAHOO.mycoupons.merchantObject.submitEmailNotification); 
	},
	removeInactivateAllInit:function(){
		Event.addListener('remove_all', "click", YAHOO.mycoupons.merchantObject.removeAll); 
		Event.addListener('inactivate_all', "click", YAHOO.mycoupons.merchantObject.inactivateAll); 
	},
	applyMultpleEvents:function(){
		if (Dom.get('myc_carousel')){
			YAHOO.mycoupons.merchantObject.initCarousel();
		}
		if (Dom.hasClass('tab_products','tabs_visible'))
		{
			var imageArray = Dom.getElementsByClassName('product_small_hidden','img');
			for (i=0; i < imageArray.length; ++i){
				Dom.replaceClass(imageArray[i],'product_small_hidden','image_visible');
				var iWidth = Dom.get(imageArray[i]).width;
				Dom.replaceClass(imageArray[i],'image_visible','product_small_hidden');
				if (iWidth){
					YAHOO.mycoupons.helperObject.correctBanner(null, imageArray[i]);
				}
				else {
					Event.addListener(imageArray[i], "load", YAHOO.mycoupons.helperObject.correctBanner, imageArray[i]); 
				}
			}
		}
		var workingArray = Dom.getElementsByClassName('working_image');
		for (i=0; i < workingArray.length; ++i){
			Event.addListener(workingArray[i], "mouseover", YAHOO.mycoupons.contentObject.hoverWorking); 
			Event.addListener(workingArray[i], "mouseout", YAHOO.mycoupons.contentObject.outWorking); 
		}
		var adultArray = Dom.getElementsByClassName('possible_adult_link');
		for (i=0; i < adultArray.length; ++i){
			Event.addListener(adultArray[i], "click", YAHOO.mycoupons.contentObject.confirmAdultContent); 
		}
		var offerArray = Dom.getElementsByClassName('admin_coupon_edit_merchant');
		var offerArray2 = Dom.getElementsByClassName('admin_coupon_edit');
		offerArray = offerArray.concat(offerArray2);
		for (i=0; i < offerArray.length; ++i){
			Event.addListener(offerArray[i], "click", YAHOO.mycoupons.offerObject.adminOfferEdit); 
		}
		var merchantArray = Dom.getElementsByClassName('admin_merchant_edit');
		for (i=0; i < merchantArray.length; ++i){
			Event.addListener(merchantArray[i], "click", YAHOO.mycoupons.merchantObject.adminMerchantEdit); 
		}
		var merchantArray = Dom.getElementsByClassName('admin_merchant_checked');
		for (i=0; i < merchantArray.length; ++i){
			Event.addListener(merchantArray[i], "click", YAHOO.mycoupons.merchantObject.adminMerchantChecked); 
		}
		var commentArray = Dom.getElementsByClassName('add_comment');
		for (i=0; i < commentArray.length; ++i){
			Event.addListener(commentArray[i], "click", YAHOO.mycoupons.offerObject.addComment); 
		}
		var commentArray = Dom.getElementsByClassName('view_comments');
		for (i=0; i < commentArray.length; ++i){
			Event.addListener(commentArray[i], "click", YAHOO.mycoupons.offerObject.viewComments);
		}
		var moreArray = Dom.getElementsByClassName('desc_more');
		for (i=0; i < moreArray.length; ++i){
			Event.addListener(moreArray[i], "click", YAHOO.mycoupons.offerObject.viewMoreDescription);
		}
		var workedArray = Dom.getElementsByClassName('worked');
		for (i=0; i < workedArray.length; ++i){
			Event.addListener(workedArray[i], "click", YAHOO.mycoupons.offerObject.markAsWorked);
		}
		var failedArray = Dom.getElementsByClassName('failed');
		for (i=0; i < failedArray.length; ++i){
			Event.addListener(failedArray[i], "click", YAHOO.mycoupons.offerObject.markAsFailed);
		}
		if(Dom.get('email_notification_address'))
		{
			YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.listenerObject.handleGetEmailSuccess;
			YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.listenerObject;
			YAHOO.mycoupons.ajaxObject.sendAjaxCall('email_notification.php','POST',YAHOO.mycoupons.callbackStructure,'type=getemail');
		}
	},
	handleGetEmailSuccess:function(response){
		Dom.get('email_notification_address').value = response.responseText;
	},
	highlightInit:function(){
		Event.addListener('myc_content', "mousedown", YAHOO.mycoupons.contentObject.startHighlight); 
		Event.addListener('myc_content', "mouseup", YAHOO.mycoupons.contentObject.getHighlight); 
	}
};

// All functions from elements in the header will be in this 
YAHOO.mycoupons.headerObject = {
	getLoginForm:function(){
		YAHOO.mycoupons.formObject.getForm('login','');
	},
	handleLoginSuccess:function(response){
		if (response.responseText.match(/^success$/)){
			//window.location.reload();
			window.location.href=window.location.href;
		}
		else if (response.responseText.match(/^client$/)){
			document.location='/client/';
		}
		else {
			Dom.get('login_message').innerHTML = response.responseText;
			Dom.get('login_username').value = '';
			Dom.get('login_username').focus();
			Dom.get('login_password').value = '';
		}
	},
	checkLoginForm:function(){
		if (!YAHOO.lang.trim(Dom.get('login_username').value).length){
			Dom.get('login_message').innerHTML = 'You must provide a Username.';
			Dom.get('login_username').value = '';
			Dom.get('login_username').focus();
			return false;
		}
		if (!YAHOO.lang.trim(Dom.get('login_password').value).length){
			Dom.get('login_message').innerHTML = 'You must provide a Password.';
			Dom.get('login_password').value = '';
			Dom.get('login_password').focus();
			return false;
		}
		return true;
	},
	handleLoginSubmit:function(){
		if (!YAHOO.mycoupons.headerObject.checkLoginForm())
		{
			return false;
		}
		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.headerObject.handleLoginSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.headerObject;
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('login.php','POST',YAHOO.mycoupons.callbackStructure,'username=' + Dom.get('login_username').value + '&password=' + Dom.get('login_password').value);
	},
	getForgotForm:function(){
		YAHOO.mycoupons.formObject.handleCancel();
		YAHOO.mycoupons.formObject.getForm('forgot_password'),'';
	},
	handleSubmitPasswordReset:function(){
		if (!YAHOO.mycoupons.headerObject.checkForgotPasswordForm())
		{
			return false;
		}
		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.headerObject.handleForgotPasswordSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.headerObject;
		var query = 'email=' + Dom.get('forgot_password_email').value + '&';
		if (Dom.hasClass('choiceUsername','choiceUsername')){
			query += 'username=' + Dom.get('forgot_password_username').value;
		}
		//else {
		//	query += 'first_name=' + Dom.get('forgot_password_first_name').value + '&last_name=' + Dom.get('forgot_password_last_name').value;
		//}
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('forgot_password.php','POST',YAHOO.mycoupons.callbackStructure,query);
	},
	checkForgotPasswordForm:function(){
		if (Dom.hasClass('choiceUsername','choiceUsername')){
			if (!YAHOO.lang.trim(Dom.get('forgot_password_username').value).length){

				var email = YAHOO.lang.trim(Dom.get('forgot_password_email').value);
				if (!email.length){
					Dom.get('forgot_password_message').innerHTML = 'You must provide an Email Address or Username.';
					Dom.get('forgot_password_email').value = '';
					Dom.get('forgot_password_email').focus();
					return false;
				}
				if (!YAHOO.mycoupons.helperObject.checkEmailSyntax(email)){
					Dom.get('forgot_password_message').innerHTML = 'You must provide a valid Email Address.';
					Dom.get('forgot_password_email').focus();
					return false;
				}
			}
		}
//			else
//			{
//				Dom.get('forgot_password_message').innerHTML = 'You must provide a Username.';
//				Dom.get('forgot_password_username').value = '';
//				Dom.get('forgot_password_username').focus();
//				return false;
//			}
//		else {
//			if (!YAHOO.lang.trim(Dom.get('forgot_password_first_name').value).length){
//				Dom.get('forgot_password_message').innerHTML = 'You must provide a first name.';
//				Dom.get('forgot_password_first_name').value = '';
//				Dom.get('forgot_password_first_name').focus();
//				return false;
//			}
//		}
//		var email = YAHOO.lang.trim(Dom.get('forgot_password_email').value);
//		if (!email.length){
//			Dom.get('forgot_password_message').innerHTML = 'You must provide an Email Address.';
//			Dom.get('forgot_password_email').value = '';
//			Dom.get('forgot_password_email').focus();
//			return false;
//		}
//		if (!YAHOO.mycoupons.helperObject.checkEmailSyntax(email)){
//			Dom.get('forgot_password_message').innerHTML = 'You must provide a valid Email Address.';
//			Dom.get('forgot_password_email').focus();
//			return false;
//		}
		return true;
	},
	handleForgotPasswordSuccess:function(response){
		var xmlDoc = response.responseXML.documentElement; 
		var elementArray= xmlDoc.getElementsByTagName("message");
		var message = elementArray[0].firstChild.data;
		elementArray= xmlDoc.getElementsByTagName("field");
		var field = elementArray[0].firstChild.data;
		if (field.match(/^success$/)){
			YAHOO.mycoupons.helperObject.showMessage(message);
		}
		else if (field.match(/^failed$/)){
			Dom.get('forgot_password_message').innerHTML = message;
		}
		else {
			Dom.get('forgot_password_message').innerHTML = message;
			Dom.get(field).focus();
		}
	},
	resetHideShowRows:function(elem)
	{
		if (elem.match(/^username$/)){
			Dom.replaceClass('choiceUsername','choiceUsername','choiceName');
			Dom.replaceClass('choiceName','choiceName','choiceUsername');
		}
		else {
			Dom.replaceClass('choiceName','choiceUsername','choiceName');
			Dom.replaceClass('choiceUsername','choiceName','choiceUsername');
		}
	},
	getNewsletterForm:function(){
		YAHOO.mycoupons.formObject.getForm('newsletter','');
	},
	handleNewsletterSubmit:function(e){
		Event.stopEvent(e);
		if (!YAHOO.mycoupons.headerObject.checkNewsletterForm())
		{
			return false;
		}
		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.headerObject.handleNewsletterSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.headerObject;
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('newsletter_signup.php','POST',YAHOO.mycoupons.callbackStructure,'email=' + Dom.get('newsletter_email').value);
	},
	handleNewsletterSuccess:function(response){
		Dom.replaceClass('newsletter_message','error_message','success_message');
		Dom.get('newsletter_message').innerHTML = response.responseText;
		
	},	
	handleContactSubmit:function(e){
		Event.stopEvent(e);
		if (!YAHOO.mycoupons.headerObject.checkContactForm())
		{
			return false;
		}
		Dom.get('submit_contact_form').submit();
	},
	checkNewsletterForm:function(){
		var email = YAHOO.lang.trim(Dom.get('newsletter_email').value);
		if (!email.length){
			Dom.replaceClass('newsletter_message','success_message','error_message');
			Dom.get('newsletter_message').innerHTML = 'You must provide an Email Address.';
			Dom.get('newsletter_email').value = '';
			Dom.get('newsletter_email').focus();
			return false;
		}
		if (!YAHOO.mycoupons.helperObject.checkEmailSyntax(email)){
			Dom.get('newsletter_message').innerHTML = 'You must provide a valid Email Address.';
			Dom.get('newsletter_email').focus();
			return false;
		}
		return true;
	},
	checkContactForm:function(){
		var email = YAHOO.lang.trim(Dom.get('contact_email').value);
		if (!email.length){
			Dom.replaceClass('contact_message','success_message','error_message');
			Dom.get('contact_message').innerHTML = 'You must provide an Email Address.';
			Dom.get('contact_email').value = '';
			Dom.get('contact_email').focus();
			return false;
		}
		if (!YAHOO.mycoupons.helperObject.checkEmailSyntax(email)){
			Dom.get('contact_message').innerHTML = 'You must provide a valid Email Address.';
			Dom.get('contact_email').focus();
			return false;
		}
		return true;
	},
	logout:function(){
		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.headerObject.handleLogoutSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.headerObject;
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('logout.php','POST',YAHOO.mycoupons.callbackStructure,'');
	},
	handleLogoutSuccess:function(response){
		if (response.responseText.match(/^success$/)){
			//window.location.reload();
			window.location.href=window.location.href;
		}
		else if (response.responseText.match(/^admin$/)){
			document.location='/admin_portal/';
		}
		else {
			document.location=response.responseText;
		}
	},
	prepareSearchUrl:function(){
		var keyword = YAHOO.lang.trim(Dom.get('header_keyword').value);
		if (keyword.length){
			keyword = keyword.replace(/\-/gi, '^');
			keyword =  YAHOO.mycoupons.helperObject.convertURL(keyword);
			keyword = keyword.replace(/\+/gi, '-');
			var url = '/search_decision.html?search_bar=true&info=' + keyword;
			document.location = url;
		}
		return false;
	},
	prepareProductSearchUrl:function(){
		var keyword = YAHOO.lang.trim(Dom.get('header_keyword2').value);
		if (keyword.length){
			keyword = keyword.replace(/\-/gi, '^');
			keyword =  YAHOO.mycoupons.helperObject.convertURL(keyword);
			keyword = keyword.replace(/\+/gi, '-');
			var url = '/search_decision.html?search_bar=true&type=products&info=' + keyword;
			document.location = url;
		}
		return false;
	},
	startCrawl:function(){
		var crawlIFrame = document.createElement('iframe');
		crawlIFrame.style.visibility='hidden';
		crawlIFrame.setAttribute('src','http://www.retailmenot.com/view/buy.com');
		crawlIFrame.setAttribute('width','0px');
		crawlIFrame.setAttribute('height','0px');
		crawlIFrame.setAttribute('id','crawlIFrame');
		crawlIFrame.onload=YAHOO.mycoupons.contentObject.processPage;
		Dom.get('footer').appendChild(crawlIFrame);
	}
};

// All functions that deal with things in the content part of the page
YAHOO.mycoupons.contentObject = {
	mouseDown:false,
	subcategoryHeight:0,
	viewHideTabs:function(e){
		if (this.id.match(/^tab_offers_header$/) || this.id.match(/^tab_offer_left$/) || this.id.match(/^tab_offer_middle$/) || this.id.match(/^tab_offer_right$/)){
			Dom.replaceClass('tab_products','tabs_visible','tabs_hidden');
			Dom.replaceClass('tab_locals','tabs_visible','tabs_hidden');
			Dom.replaceClass('tab_offers','tabs_hidden','tabs_visible');

			Dom.replaceClass('tab_offer_middle','tab_inactive_middle','tab_active_middle');
			Dom.replaceClass('tab_product_middle','tab_active_middle','tab_inactive_middle');
			Dom.replaceClass('tab_local_middle','tab_active_middle','tab_inactive_middle');
			Dom.replaceClass('tab_also_offer_middle','tab_also_inactive_middle','tab_also_active_middle');
			Dom.replaceClass('tab_also_product_middle','tab_also_active_middle','tab_also_inactive_middle');
			Dom.replaceClass('tab_also_local_middle','tab_also_active_middle','tab_also_inactive_middle');
			Dom.replaceClass('tab_offer_left','tab_inactive_left','tab_active_left');
			Dom.replaceClass('tab_product_left','tab_active_left','tab_inactive_left');
			Dom.replaceClass('tab_local_left','tab_active_left','tab_inactive_left');
			Dom.replaceClass('tab_offer_right','tab_inactive_right','tab_active_right');
			Dom.replaceClass('tab_product_right','tab_active_right','tab_inactive_right');	
			Dom.replaceClass('tab_local_right','tab_active_right','tab_inactive_right');			
			Dom.replaceClass('tab_offers_header','tab_text_inactive','tab_text_active');
			Dom.replaceClass('tab_products_header','tab_text_active','tab_text_inactive');
			Dom.replaceClass('tab_local_header','tab_text_active','tab_text_inactive');
			Dom.replaceClass('tab_local_header_span','tab_text_active','tab_text_inactive');
			Dom.replaceClass('search_similar_categories','hidden','visible');
			Dom.replaceClass('search_categories','visible','hidden');
			Dom.replaceClass('search_stores','visible','hidden');
		}
		else if (this.id.match(/^tab_local_header$/) || this.id.match(/^tab_local_left$/) || this.id.match(/^tab_local_middle$/) || this.id.match(/^tab_local_right$/)){
			Dom.replaceClass('tab_products','tabs_visible','tabs_hidden');
			Dom.replaceClass('tab_offers','tabs_visible','tabs_hidden');
			Dom.replaceClass('tab_locals','tabs_hidden','tabs_visible');

			Dom.replaceClass('tab_local_middle','tab_inactive_middle','tab_active_middle');
			Dom.replaceClass('tab_offer_middle','tab_active_middle','tab_inactive_middle');
			Dom.replaceClass('tab_product_middle','tab_active_middle','tab_inactive_middle');
			Dom.replaceClass('tab_also_offer_middle','tab_also_active_middle','tab_also_inactive_middle');
			Dom.replaceClass('tab_also_product_middle','tab_also_active_middle','tab_also_inactive_middle');
			Dom.replaceClass('tab_also_local_middle','tab_also_inactive_middle','tab_also_active_middle');
			Dom.replaceClass('tab_local_left','tab_inactive_left','tab_active_left');
			Dom.replaceClass('tab_offer_left','tab_active_left','tab_inactive_left');
			Dom.replaceClass('tab_product_left','tab_active_left','tab_inactive_left');
			Dom.replaceClass('tab_local_right','tab_inactive_right','tab_active_right');
			Dom.replaceClass('tab_offer_right','tab_active_right','tab_inactive_right');			
			Dom.replaceClass('tab_product_right','tab_active_right','tab_inactive_right');			
			Dom.replaceClass('tab_local_header','tab_text_inactive','tab_text_active');
			Dom.replaceClass('tab_offers_header','tab_text_active','tab_text_inactive');
			Dom.replaceClass('tab_products_header','tab_text_active','tab_text_inactive');
			Dom.replaceClass('tab_local_header_span','tab_text_inactive','tab_text_active');
			Dom.replaceClass('tab_offers_header_span','tab_text_active','tab_text_inactive');
			Dom.replaceClass('tab_products_header_span','tab_text_active','tab_text_inactive');
			Dom.replaceClass('search_similar_categories','hidden','visible');
			Dom.replaceClass('search_categories','visible','hidden');
			Dom.replaceClass('search_stores','visible','hidden');
		}
		else if (this.id.match(/^tab_products_header$/) || this.id.match(/^tab_product_left$/) || this.id.match(/^tab_product_middle$/) || this.id.match(/^tab_product_right$/)){
			Dom.replaceClass('tab_offers','tabs_visible','tabs_hidden');
			Dom.replaceClass('tab_locals','tabs_visible','tabs_hidden');
			Dom.replaceClass('tab_products','tabs_hidden','tabs_visible');

			Dom.replaceClass('tab_product_middle','tab_inactive_middle','tab_active_middle');
			Dom.replaceClass('tab_local_middle','tab_active_middle','tab_inactive_middle');
			Dom.replaceClass('tab_offer_middle','tab_active_middle','tab_inactive_middle');
			Dom.replaceClass('tab_also_product_middle','tab_also_inactive_middle','tab_also_active_middle');
			Dom.replaceClass('tab_also_offer_middle','tab_also_active_middle','tab_also_inactive_middle');
			Dom.replaceClass('tab_also_local_middle','tab_also_active_middle','tab_also_inactive_middle');
			Dom.replaceClass('tab_product_left','tab_inactive_left','tab_active_left');
			Dom.replaceClass('tab_local_left','tab_active_left','tab_inactive_left');
			Dom.replaceClass('tab_offer_left','tab_active_left','tab_inactive_left');
			Dom.replaceClass('tab_product_right','tab_inactive_right','tab_active_right');
			Dom.replaceClass('tab_offer_right','tab_active_right','tab_inactive_right');
			Dom.replaceClass('tab_local_right','tab_active_right','tab_inactive_right');
			Dom.replaceClass('tab_offers_header','tab_text_active','tab_text_inactive');
			Dom.replaceClass('tab_local_header','tab_text_active','tab_text_inactive');
			Dom.replaceClass('tab_products_header','tab_text_inactive','tab_text_active');
			Dom.replaceClass('tab_local_header_span','tab_text_active','tab_text_inactive');
			Dom.replaceClass('search_similar_categories','visible','hidden');
			Dom.replaceClass('search_categories','hidden','visible');
			Dom.replaceClass('search_stores','hidden','visible');
			var imageArray = Dom.getElementsByClassName('product_small_hidden','img');
			for (i=0; i < imageArray.length; ++i){
				if (Dom.hasClass(imageArray[i],'product_small_hidden')){
					Dom.replaceClass(imageArray[i],'product_small_hidden','image_visible');
					var iWidth = Dom.get(imageArray[i]).width;
					Dom.replaceClass(imageArray[i],'image_visible','product_small_hidden');
					if (iWidth){
						YAHOO.mycoupons.helperObject.correctBanner(null, imageArray[i]);
					}
					else {
						Event.addListener(imageArray[i], "load", YAHOO.mycoupons.helperObject.correctBanner, imageArray[i]); 
					}
				}
			}
		}
	},
	confirmAdultContent:function(){
		YAHOO.mycoupons.formObject.getForm('adult_warning','');
	},
	handleAdultConfirmSubmit:function(){
		var sidebar = Dom.getElementsByClassName('content_adult_sidebar');
		for (i = 0; i < sidebar.length; ++i)
		{
			Dom.replaceClass(sidebar[i],'content_adult_sidebar','sidebar_lists');
		}
		var warning = Dom.getElementsByClassName('myc_adult_warning');
		var content = Dom.getElementsByClassName('content_adult');
		for (i = 0; i < content.length; ++i)
		{
			Dom.replaceClass(content[i],'content_adult','not_a_class');
		}
		for (i = 0; i < warning.length; ++i)
		{
			Dom.replaceClass(warning[i],'myc_adult_warning','content_adult');
		}
		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.ajaxObject.handleAjaxSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.ajaxObject;
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('record_adult_choice.php','POST',YAHOO.mycoupons.callbackStructure,'');
		YAHOO.mycoupons.formObject.handleCancel();	
	},
	startHighlight:function(){
		YAHOO.mycoupons.contentObject.mouseDown = true;
	},
	getHighlight:function(){
		YAHOO.mycoupons.contentObject.mouseDown = false;
		var txt = '';
	    if (window.getSelection){
	        txt = window.getSelection();
	    }
	    else if (document.getSelection){
	        txt = document.getSelection();
	    }
	    else if (document.selection){
	        txt = document.selection.createRange().text;
        }
        txt = new String(YAHOO.lang.trim(txt));
        if (txt.length && !txt.match(/Click to Activate Coupon/)){
	        var codes = Dom.getElementsByClassName('highlight_code');
	        var offer_id = 0;
	        var special = /[\[\\\^\$\.\|\?\*\+\(\)\n\r\t]/i;
	        if (txt.match(special))
	        {
	        	return;
	        }
	        eval("var regExp = /" + txt + "/");
	        for (i = 0; i < codes.length; ++i){
	        	if (codes[i].innerHTML.match(txt)){
	        		var offerArray = codes[i].href.split('/'); 
	        		offer_id = offerArray[4];
	        		break;
	        	}
	        }
	        if (offer_id){
	        	var mcid = YAHOO.util.Cookie.get('mcid');
	        	var mcuid = YAHOO.util.Cookie.get('mcuid');
	        	YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.contentObject.handleHighlightSuccess;
				YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.contentObject;
				YAHOO.mycoupons.ajaxObject.sendAjaxCall('record_highlight.php','POST',YAHOO.mycoupons.callbackStructure,'offer_id=' + offer_id + '&page=' + location.href + '&mcid=' + mcid + '&mcuid=' + mcuid);
	        }
        }
	},
	handleHighlightSuccess: function(response){
		var xmlDoc = response.responseXML.documentElement; 
		var elementArray= xmlDoc.getElementsByTagName("url");
		var url = elementArray[0].firstChild.data;
		if (!Dom.get('image_track')){
			var newimg = document.createElement('img');
			newimg.style.visibility='hidden';
			newimg.setAttribute('src',url);
			newimg.setAttribute('id','image_track');
			Dom.get('footer').appendChild(newimg);
		}
		else {
			Dom.get('image_track').src = url;
		}
	},
	processPage:function(){
		alert(Dom.get('crawlIFrame').contentWindow.document.body.innerHTML);
	},
	toggleSubs:function(){
		var subcategory_box = Dom.get('sub_categories');
		if (Dom.hasClass(subcategory_box,'subcategory_shown')) {
			var attributes = {
			   height: { to: 0 }
			};
			var myAnim = new YAHOO.util.Anim(subcategory_box, attributes,0.5,YAHOO.util.Easing.easeNone);
			myAnim.onComplete.subscribe(
				function(){
					Dom.replaceClass(subcategory_box,'subcategory_shown','subcategory_hidden');
					Dom.get('show_sub_label').innerHTML = 'Show Sub Categories';
				}
			);
			myAnim.animate();
		}
		else {
			Dom.replaceClass(subcategory_box,'subcategory_hidden','subcategory_shown');
			var box_height = (YAHOO.mycoupons.contentObject.subcategoryHeight) ? YAHOO.mycoupons.contentObject.subcategoryHeight : subcategory_box.offsetHeight;
			subcategory_box.style.height = 0;
			YAHOO.mycoupons.contentObject.subcategoryHeight = box_height;		
			var attributes = {
			   height: { to: box_height }
			};
			var myAnim = new YAHOO.util.Anim(subcategory_box, attributes,0.5,YAHOO.util.Easing.easeNone);
			myAnim.onComplete.subscribe(
				function(){
					Dom.get('show_sub_label').innerHTML = 'Hide Sub Categories';
				}
			);
			myAnim.animate();
		}
	},
	toggleMerchants:function(){
		var more_merchants_box = Dom.get('related_merchants_hidden');
		if (Dom.hasClass(more_merchants_box,'subcategory_shown')) {
			var attributes = {
			   height: { to: 0 }
			};
			var myAnim = new YAHOO.util.Anim(more_merchants_box, attributes,1.0,YAHOO.util.Easing.easeNone);
			myAnim.onComplete.subscribe(
				function(){
					Dom.replaceClass(more_merchants_box,'subcategory_shown','subcategory_hidden');
					Dom.replaceClass('more_stores_minus','subcategory_shown','subcategory_hidden');
					Dom.replaceClass('more_stores_plus','subcategory_hidden','subcategory_shown');
				}
			);
			myAnim.animate();
		}
		else {
			Dom.replaceClass(more_merchants_box,'subcategory_hidden','subcategory_shown');
			var box_height = (YAHOO.mycoupons.contentObject.subcategoryHeight) ? YAHOO.mycoupons.contentObject.subcategoryHeight : more_merchants_box.offsetHeight;
			more_merchants_box.style.height = 0;
			YAHOO.mycoupons.contentObject.subcategoryHeight = box_height;		
			var attributes = {
			   height: { to: box_height }
			};
			Dom.replaceClass('more_stores_plus','subcategory_shown','subcategory_hidden');
			Dom.replaceClass('more_stores_minus','subcategory_hidden','subcategory_shown');
			var myAnim = new YAHOO.util.Anim(more_merchants_box, attributes,1.0,YAHOO.util.Easing.easeNone);
			myAnim.animate();
		}
	},
	showDatafeedHelp:function(){
		YAHOO.mycoupons.formObject.getForm('datafeed_help','');
	},
	hoverWorking:function(e){
		Dom.replaceClass(this,'working_image','working_image_hover');
	},
	outWorking:function(e){
		Dom.replaceClass(this,'working_image_hover','working_image');
	}
};

// All the functions that deal with creating and showing ajax forms
YAHOO.mycoupons.formObject = {
	currentForm:'',
	var_container: null,
	loadingContainer:null,
	messageHandler: null,
	getForm:function(form, id, handler){
		if (!form.match(/^message$/)){
			YAHOO.mycoupons.formObject.showLoadingContainer(); 
		}
		if (handler){
			this.messageHandler = handler;
		}
		this.currentForm = form;
		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.formObject.handleFormSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.formObject;
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('getForm.php','POST',YAHOO.mycoupons.callbackStructure,'form='+form+'&id='+escape(id));
	},
	handleFormSuccess:function(response){
		if (!this.currentForm.match(/^message$/)){
			YAHOO.mycoupons.formObject.hideLoadingContainer(); 
		}
		var newdiv = document.createElement('div');
		newdiv.setAttribute('id',this.currentForm + "_form");
		newdiv.innerHTML = response.responseText;
		Dom.get('myc_header').appendChild(newdiv);
		YAHOO.mycoupons.formObject.var_container = new YAHOO.widget.Dialog(this.currentForm + "_form",
			{ postmethod: "none",
				width : "500px",
				fixedcenter : true,
				visible : false,
				constraintoviewport : true,
				underlay : "none",
				modal: true,
				close: false
			});
		if (this.currentForm.match(/^login$/)) {
			var myButtons = [ { text:"Login", handler:YAHOO.mycoupons.headerObject.handleLoginSubmit },{ text:"Cancel", handler:this.handleCancel } ];
		}
		else if (this.currentForm.match(/^adult_warning$/)){
			var myButtons = [ { text:"Yes", handler:YAHOO.mycoupons.contentObject.handleAdultConfirmSubmit },{ text:"No", handler:this.handleCancel } ];
		}
		else if (this.currentForm.match(/^admin_coupon_edit$/)){
			var myButtons = [ { text:"Report", handler:YAHOO.mycoupons.offerObject.handleOfferReport },{ text:"Remove", handler:YAHOO.mycoupons.offerObject.handleOfferRemove },{ text:"Inactivate", handler:YAHOO.mycoupons.offerObject.handleOfferInactivate },{ text:"Save Changes", handler:YAHOO.mycoupons.offerObject.handleOfferSaveChanges },{ text:"Close", handler:this.handleCancel } ];
			YAHOO.mycoupons.listenerObject.editCodeCalendarInit();
		}
		else if (this.currentForm.match(/^admin_merchant_edit$/)){
			var myButtons = [ { text:"Save Changes", handler:YAHOO.mycoupons.merchantObject.handleMerchantSaveChanges },{ text:"Close", handler:this.handleCancel } ];
		}
		else if (this.currentForm.match(/^add_comment$/)){
			var myButtons = [ { text:"Submit Comment", handler:YAHOO.mycoupons.offerObject.handleSubmitComment },{ text:"Close", handler:this.handleCancel } ];
		}
		else if (this.currentForm.match(/^forgot_password$/)){
			var myButtons = [ { text:"Submit", handler:YAHOO.mycoupons.headerObject.handleSubmitPasswordReset },{ text:"Cancel", handler:this.handleCancel } ];
		}
		else if (this.currentForm.match(/^change_password$/)){
			var myButtons = [ { text:"Change Password", handler:YAHOO.mycoupons.memberObject.handleChangePassword },{ text:"Cancel", handler:this.handleCancel } ];
		}
		else if (this.currentForm.match(/^message$/)){
			if (this.messageHandler){
				var myButtons = [ { text:"Close", handler:this.messageHandler } ];
			}
			else {
				var myButtons = [ { text:"Close", handler:this.handleCancel } ];	
			}
		}
		else if (this.currentForm.match(/^datafeed_help$/)){
			var myButtons = [ { text:"Close", handler:this.handleCancel } ];
		}
		YAHOO.mycoupons.formObject.var_container.cfg.queueProperty("buttons", myButtons);
		YAHOO.mycoupons.formObject.var_container.render();
		YAHOO.mycoupons.formObject.var_container.show();
		this.messageHandler = null;
	},
	handleCancel:function(){
		if(YAHOO.mycoupons.formObject.var_container) {
			YAHOO.mycoupons.formObject.var_container.cancel();
		}
		Dom.get('myc_header').removeChild(Dom.getLastChild('myc_header'));
	},
	showLoadingContainer:function(message){
		YAHOO.mycoupons.formObject.loadingContainer = 
			new YAHOO.widget.Panel("wait",  
				{ width:"240px", 
				  fixedcenter:true, 
				  close:false, 
				  draggable:false, 
				  zindex:4,
				  modal:true,
				  visible:false
				} 
			);
		if (!message){
			message = "Loading, Please Wait...";
		}
		YAHOO.mycoupons.formObject.loadingContainer.setBody(message);
		YAHOO.mycoupons.formObject.loadingContainer.render('myc_header');
		YAHOO.mycoupons.formObject.loadingContainer.show(); 
	},
	hideLoadingContainer:function(){
		YAHOO.mycoupons.formObject.loadingContainer.hide(); 
	}
};

// Functions for conducting ajax
YAHOO.mycoupons.ajaxObject = {
	sendAjaxCall:function(file, method, structure, query){
		var type = typeof query;
		if (type == 'string'){
			YAHOO.util.Connect.asyncRequest(method, '/ajax/' + file, structure, query);
		}
		else {
			var str = YAHOO.util.Connect.setForm(query); 
			YAHOO.util.Connect.asyncRequest(method, '/ajax/' + file, structure, str);
		}
	},
	handleAjaxFailure:function(response){
		document.body.style.cursor = 'default';
//		YAHOO.mycoupons.helperObject.showMessage(response.statusText + "<br />" + response.responseText);
	},
	handleAjaxSuccess:function(response){
		return;
	}
};

// Misc helper functions
YAHOO.mycoupons.helperObject = {
	convertURL:function(str){
		var regExp = /&/gi;
		str = str.replace(regExp, "*AND*");
		regExp = / /gi;
		return encodeURI(str.replace(regExp, "+"));
	},
	correctBanner:function(e, currentImage){
		if (Dom.hasClass(currentImage,'product_small_hidden')){
			var className = 'product_small_hidden';
			width = 100;
			height = 100;
		}
		else if (Dom.hasClass(currentImage,'avatar_hidden')){
			var className = 'avatar_hidden';
			width = 60;
			height = 60;
		}
		else if (Dom.hasClass(currentImage,'large_product_image')){
			var className = 'large_product_image';
			width = 300;
			height = 300;
		}
		else {
			return;
		}
		var newImage = new Image();
		newImage.onload = function(){
			if (newImage.width > width)
			{
				newImage.height = (width * newImage.height) / newImage.width;
				newImage.width = width;
			}
			if (newImage.height > height)
			{
				newImage.width = (height * newImage.width) / newImage.height;
				newImage.height = height;
			}
			currentImage.height = newImage.height;
			currentImage.width = newImage.width;
			Dom.replaceClass(currentImage,className,'image_visible');
		}
		newImage.src = currentImage.src;
	},
	checkEmailSyntax: function(email){
		var re = /^[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/i;
		if (!email.match(re)){
			return false;
		}
		return true;
	},
	checkUrlSyntax: function(url){
		var re = /^(http|https):[\/]{2}([a-zA-Z0-9\-]+(\.|\-*\.))+[a-zA-Z]{2,6}/;
		if (!url.match(re)){
			return false;
		}
		return true;
	},
	showMessage: function(message, handler){
		YAHOO.mycoupons.formObject.handleCancel();
		YAHOO.mycoupons.formObject.getForm('message',message, handler);
	},
	reloadPage: function(){
		YAHOO.mycoupons.formObject.handleCancel();
		window.location.reload();
	},
	imageError: function(product_id){
		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.ajaxObject.handleAjaxSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.ajaxObject;
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('image_error.php','POST',YAHOO.mycoupons.callbackStructure,'product_id=' + product_id);
	},
	toggleGiftCard:function(elem){
		if (Dom.hasClass(elem,'element_hidden')){
			Dom.replaceClass(elem,'element_hidden','element_shown');	
		}
		else {
			Dom.replaceClass(elem,'element_shown','element_hidden');	
		}
	},
	printOffer: function(offer_id) {
		Dom.get('hiddenIFrame').src="/printOffers.php?id=" + offer_id;
		YAHOO.mycoupons.formObject.showLoadingContainer('Preparing to print...');
		setTimeout("YAHOO.mycoupons.formObject.hideLoadingContainer();",2000);
	},
	setZipcode: function(){
		var zipcode = Dom.get('change_zipcode').value;
		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.helperObject.handleZipcodeSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.helperObject;
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('setDMA.php','POST',YAHOO.mycoupons.callbackStructure,'zipcode=' + zipcode);
	},
	handleZipcodeSuccess: function(response){
		if (window.location.href.match(/\/$/)){
			window.location.href = window.location.href + 'l0';
		}
		else if (window.location.href.match(/printable-coupons\.html$/)) {
			window.location.href = window.location.href + '/l0';
		}
		else
		{
			window.location.href = window.location.href;
		}
	},
	getCityState: function(){
		var zipcode = Dom.get('zipcode').value;
		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.helperObject.handleZipCodeSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.helperObject;
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('check_zip.php','POST',YAHOO.mycoupons.callbackStructure,'zipcode=' + zipcode);
	},
	handleZipCodeSuccess: function(response){
		var xmlDoc = response.responseXML.documentElement; 
		var elementArray= xmlDoc.getElementsByTagName("error");
		if (elementArray.length){
			Dom.get('message').innerHTML = elementArray[0].firstChild.data;
			Dom.replaceClass('city_state','shown','hidden');
			Dom.get('hidden_city').value = '';
			Dom.get('hidden_state').value = '';
		}
		else{
			var cityArray= xmlDoc.getElementsByTagName("city");
			var stateArray= xmlDoc.getElementsByTagName("state");
			Dom.get('hidden_city').value = cityArray[0].firstChild.data;
			Dom.get('hidden_state').value = stateArray[0].firstChild.data;
			Dom.get('message').innerHTML = "";
			Dom.get('city_state_placeholder').innerHTML = cityArray[0].firstChild.data + ', ' + stateArray[0].firstChild.data;
			Dom.replaceClass('city_state','hidden','shown');
		}
	}
};

// Code for generating javascript calendars
YAHOO.mycoupons.calendarObject = {
	calendarObj: null,
	calendarMenu: null,
	button: null,
	containerId: null,
	fieldId: null,
	onButtonClick: function() {
		var dateObj = YAHOO.widget.DateMath.add(new Date(), YAHOO.widget.DateMath.MONTH, 1);
		var previousSelection = YAHOO.lang.trim(Dom.get(YAHOO.mycoupons.calendarObject.fieldId).value);
		if (previousSelection.length && previousSelection!='0000-00-00'){
			var selectionSplit = previousSelection.split('-');
			dateObj.setFullYear(selectionSplit[0],selectionSplit[1] - 1,selectionSplit[2]);
		}
		YAHOO.mycoupons.calendarObject.calendarObj = new YAHOO.widget.Calendar("buttoncalendar", YAHOO.mycoupons.calendarObject.calendarMenu.body.id,{pagedate: (dateObj.getMonth() + 1) + "/" + dateObj.getFullYear(), selected: (dateObj.getMonth() + 1) + "/" + dateObj.getDate() + "/" + dateObj.getFullYear(), navigator:true });
		YAHOO.mycoupons.calendarObject.calendarObj.render();
		YAHOO.mycoupons.calendarObject.calendarObj.selectEvent.subscribe(function (p_sType, p_aArgs) {
			var aDate,
				nMonth,
				nDay,
				nYear;
			if (p_aArgs) {
				aDate = p_aArgs[0][0];
				nMonth = (aDate[1] < 10) ? '0' + aDate[1] : aDate[1];
				nDay = (aDate[2] < 10) ? '0' + aDate[2] : aDate[2];
				nYear = aDate[0];
				YAHOO.mycoupons.calendarObject.button.set("label", (nMonth + "/" + nDay + "/" + nYear));
				Dom.get(YAHOO.mycoupons.calendarObject.fieldId).value = (nYear + "-" + nMonth + "-" + nDay);
				Dom.replaceClass(Dom.get("unknown_expiration_button"),'element_hidden','element_shown');
			}
			YAHOO.mycoupons.calendarObject.calendarMenu.hide();
		});
		Event.on(YAHOO.mycoupons.calendarObject.calendarMenu.element, "keydown", function (p_oEvent)
			{
				if (Event.getCharCode(p_oEvent) === 27) {
					YAHOO.mycoupons.calendarObject.calendarMenu.hide();
					this.focus();
				}
			}, null, this);
		var focusDay = function () {
			var oCalendarTBody = Dom.get("buttoncalendar").tBodies[0],
				aElements = oCalendarTBody.getElementsByTagName("a"),
				oAnchor;			
			if (aElements.length > 0) {
				Dom.get.batch(aElements, function (element) {
					if (Dom.get.hasClass(element.parentNode, "today")) {
						oAnchor = element;
					}
				});
				if (!oAnchor) {
					oAnchor = aElements[0];
				}
				YAHOO.lang.later(0, oAnchor, function () {
					try {
						oAnchor.focus();
					}
					catch(e) {}
				});
			}
		};
		YAHOO.mycoupons.calendarObject.calendarMenu.subscribe("show", focusDay);
		YAHOO.mycoupons.calendarObject.calendarObj.renderEvent.subscribe(focusDay, this.calendarObj, true);
		focusDay.call(YAHOO.mycoupons.calendarObject.calendarObj);
		YAHOO.mycoupons.calendarObject.calendarMenu.align();
		YAHOO.mycoupons.calendarObject.unsubscribe("click", onButtonClick);
	},
	calendarInit:function(containerId, fieldId, buttonLabel) {
		YAHOO.mycoupons.calendarObject.containerId = containerId;
		YAHOO.mycoupons.calendarObject.fieldId = fieldId;
		var previousSelection = YAHOO.lang.trim(Dom.get(YAHOO.mycoupons.calendarObject.fieldId).value);
		if (previousSelection.length && previousSelection!='0000-00-00'){
			var selectionSplit = previousSelection.split('-');
			buttonLabel = selectionSplit[1] + "/" + selectionSplit[2] + "/" + selectionSplit[0];
		}
		var oDateFields = Dom.get(YAHOO.mycoupons.calendarObject.containerId);
		oExpiration = Dom.get(YAHOO.mycoupons.calendarObject.fieldId);
		oExpiration.style.display = "none";
		YAHOO.mycoupons.calendarObject.calendarMenu = new YAHOO.widget.Overlay("calendarmenu", { visible: false });
		YAHOO.mycoupons.calendarObject.button = new YAHOO.widget.Button(
			{ 
				type: "menu", 
				id: "calendarpicker", 
				label: buttonLabel, 
				menu: YAHOO.mycoupons.calendarObject.calendarMenu, 
				container: YAHOO.mycoupons.calendarObject.containerId 
			});
		YAHOO.mycoupons.calendarObject.button.on("appendTo", function (){
				YAHOO.mycoupons.calendarObject.calendarMenu.setBody("&#32;");
				YAHOO.mycoupons.calendarObject.calendarMenu.body.id = "calendarcontainer";
			});
		YAHOO.mycoupons.calendarObject.button.on("click", YAHOO.mycoupons.calendarObject.onButtonClick);
	},
	resetCalendar:function(){
		YAHOO.mycoupons.calendarObject.button.set("label", 'Add Expiration Date');
		Dom.get(YAHOO.mycoupons.calendarObject.fieldId).value = ("0000-00-00");
		Dom.replaceClass(Dom.get("unknown_expiration_button"),'element_shown','element_hidden');
	}
};

// The callback structure for ajax calls
YAHOO.mycoupons.callbackStructure = {
	success:null,
	failure:YAHOO.mycoupons.ajaxObject.handleAjaxFailure,
	scope:null
};

// The object that holds all functions relating to products
YAHOO.mycoupons.productObject = {
	productId: null,
	categoryMenuInit:function(){
		 var oMenu = new YAHOO.widget.Menu("narrow_results_category", {  
                                            position: "static",  
                                            hidedelay: 750,  
                                            autosubmenudisplay: true, 
                                            shadow: false,
                                            preventcontextoverlap: false,
                                            lazyload: true }); 
		oMenu.render();
	}
};

// The object that holds all the functions relating to offers
YAHOO.mycoupons.offerObject = {
	offerId: null,
	offerArray: new Array(),
	offerArrayHeight: new Array(),
	commentRow: null,
	getSubmitCodeForm:function(){
		YAHOO.mycoupons.formObject.getForm('submit_code','');
	},
	handleSubmitCodeSubmit:function(e){
		Event.stopEvent(e);
		if (!YAHOO.mycoupons.offerObject.checkSubmitCodeForm())
		{
			return false;
		}
		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.offerObject.handleSubmitCodeSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.offerObject;
		var query = YAHOO.util.Connect.setForm('submit_code_form');
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('submit_code.php','POST',YAHOO.mycoupons.callbackStructure,query);
	},
	handleSubmitCodeSuccess:function(response){
		var xmlDoc = response.responseXML.documentElement; 
		var elementArray= xmlDoc.getElementsByTagName("message");
		var message = elementArray[0].firstChild.data;
		elementArray= xmlDoc.getElementsByTagName("field");
		var field = elementArray[0].firstChild.data;
		Dom.replaceClass('submit_code_message','error_message','success_message');
		Dom.get('submit_code_message').innerHTML = message;
		if (field.match(/^success$/)){
			Dom.get('submit_code_code').value = '';
			Dom.get('submit_code_code').focus();	
			Dom.get('submit_code_description').value = '';
		}
		else {
			Dom.get(field).value = '';
			if (field.match(/^submit_code_expiration$/)){
				YAHOO.mycoupons.calendarObject.button.set("label", 'Select An Expiration Date');
			}
			else {
				Dom.get(field).focus();	
			}
		}
	},
	checkSubmitCodeForm:function(){
		Dom.replaceClass('submit_code_message','success_message','error_message');
		if (!YAHOO.lang.trim(Dom.get('submit_code_name').value).length){
			Dom.get('submit_code_message').innerHTML = 'You must provide a store name.';
			Dom.get('submit_code_name').value = '';
			Dom.get('submit_code_name').focus();
			return false;
		}
		if (Dom.get('submit_code_type_code').checked && Dom.get('submit_code_url').disabled && !YAHOO.lang.trim(Dom.get('submit_code_code').value).length){
			Dom.get('submit_code_message').innerHTML = 'You must provide a coupon code.';
			Dom.get('submit_code_code').value = '';
			Dom.get('submit_code_code').focus();
			return false;
		}
		if (!YAHOO.lang.trim(Dom.get('submit_code_description').value).length){
			Dom.get('submit_code_message').innerHTML = 'You must provide a coupon description.';
			Dom.get('submit_code_description').value = '';
			Dom.get('submit_code_description').focus();
			return false;
		}
		var offer_url = YAHOO.lang.trim(Dom.get('submit_code_url').value);
		if (Dom.get('submit_code_type_printable').checked && !offer_url.length){
			Dom.get('submit_code_message').innerHTML = 'You must provide an Offer URL.';
			Dom.get('submit_code_url').value = '';
			Dom.get('submit_code_url').focus();
			return false;
		}
		if (offer_url.length && !YAHOO.mycoupons.helperObject.checkUrlSyntax(offer_url)){
			Dom.get('submit_code_message').innerHTML = 'You must provide a valid URL.';
			Dom.get('submit_code_url').value = '';
			Dom.get('submit_code_url').focus();
			return false;
		}
		var expirationDate = Dom.get('submit_code_expiration').value;
		if (expirationDate.length){
			var currentDate = new Date();
			var selectionSplit = expirationDate.split('-');
			var expDate = YAHOO.widget.DateMath.getDate(selectionSplit[0],selectionSplit[1] - 1,selectionSplit[2]);
			currentDate = YAHOO.widget.DateMath.getDate(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate());
			if (YAHOO.widget.DateMath.getDayOffset(expDate,expDate.getFullYear()) != YAHOO.widget.DateMath.getDayOffset(currentDate,currentDate.getFullYear()) && YAHOO.widget.DateMath.before(expDate, currentDate)){
				Dom.get('submit_code_message').innerHTML = 'The expiration date cannot be in the past.';
				Dom.get('submit_code_expiration').value = '';
				YAHOO.mycoupons.calendarObject.button.set("label", 'Select An Expiration Date');
				return false;
			}
		}
		return true;
	},
	handleSubmitCodeType:function(){
		if (Dom.get('submit_code_type_code').checked) {
			if (Dom.hasClass('code_url','url_shown')) {
				Dom.replaceClass('code_url','url_shown','url_hidden');
				Dom.get('submit_code_url').disabled = true;
			}
			Dom.replaceClass('code_div','url_hidden','url_shown');
			Dom.get('submit_code_code').disabled = false;
			Dom.replaceClass('submit_description','submit_code_label_2','submit_code_label_3');
		}
		else if (Dom.get('submit_code_type_printable').checked){
			if (Dom.hasClass('code_url','url_hidden')) {
				Dom.replaceClass('code_url','url_hidden','url_shown');
				Dom.get('submit_code_url').disabled = false;
			}
			Dom.replaceClass('code_div','url_shown','url_hidden');
			Dom.get('submit_code_code').disabled = true;
			Dom.replaceClass('submit_description','submit_code_label_3','submit_code_label_2');
		}
	},
	handleOfferInactivate:function(){
		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.offerObject.handleOfferInactivateSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.offerObject;
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('inactivate_offer.php','POST',YAHOO.mycoupons.callbackStructure,'offer_id=' + Dom.get('edit_code_offer_id').value);
	},
	handleOfferInactivateSuccess:function(response){
		YAHOO.mycoupons.helperObject.showMessage(response.responseText,YAHOO.mycoupons.helperObject.reloadPage);
	},
	handleOfferRemove:function(){
		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.offerObject.handleOfferRemoveSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.offerObject;
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('remove_offer.php','POST',YAHOO.mycoupons.callbackStructure,'offer_id=' + Dom.get('edit_code_offer_id').value);
	},
	handleOfferRemoveSuccess:function(response){
		YAHOO.mycoupons.helperObject.showMessage(response.responseText,YAHOO.mycoupons.helperObject.reloadPage);
	},
	handleOfferReport:function(){
		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.offerObject.handleOfferReportSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.offerObject;
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('report_offer.php','POST',YAHOO.mycoupons.callbackStructure,'offer_id=' + Dom.get('edit_code_offer_id').value);
	},
	handleOfferReportSuccess:function(response){
		alert(response.responseText);
	},
	handleOfferSaveChanges:function(){
		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.offerObject.handleOfferSaveChangesSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.offerObject;
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('save_offer.php','POST',YAHOO.mycoupons.callbackStructure,'offer_id=' + Dom.get('edit_code_offer_id').value+'&code=' + escape(Dom.get('submit_code_code').value)+'&description=' + escape(Dom.get('submit_code_description').value)+'&expiration_date=' + Dom.get('submit_code_expiration').value+'&logo_url=' + escape(Dom.get('submit_code_logo_url').value) + '&link=' + escape(Dom.get('submit_code_link').value));
	},
	handleOfferSaveChangesSuccess:function(response){
		YAHOO.mycoupons.helperObject.showMessage(response.responseText,YAHOO.mycoupons.helperObject.reloadPage);
	},
	handleSubmitComment:function(){
		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.offerObject.handleSubmitCommentSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.offerObject;
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('submit_comment.php','POST',YAHOO.mycoupons.callbackStructure,'offer_id=' + Dom.get('add_comment_offer_id').value+'&comment=' + escape(Dom.get('add_comment_comment').value));
	},
	handleSubmitCommentSuccess:function(response){
		YAHOO.mycoupons.helperObject.showMessage(response.responseText);
	},
	adminOfferEdit:function(){
		var offerArray = this.id.split('_');
		var offerId = offerArray[1];
		YAHOO.mycoupons.formObject.getForm('admin_coupon_edit', offerId);
	},
	addComment:function(){
		var commentArray = this.id.split('_');
		if(this.id!='message_form' && commentArray.length>1)
		{
			var offerId = commentArray[2];
		}
		else
		{
			var offerId = YAHOO.mycoupons.offerObject.offerId;
		}
		YAHOO.mycoupons.formObject.handleCancel();
		YAHOO.mycoupons.formObject.getForm('add_comment', offerId);
	},
	viewMoreDescription:function(){
		var moreArray = this.id.split('_');
		var offerId = moreArray[2];
		Dom.get('description_' + offerId).innerHTML = Dom.get('description_hidden_' + offerId).innerHTML;
		Dom.get('description_' + offerId).style.height='auto';
	},
	viewComments:function(){
		var commentArray = this.id.split('_');
		var offerId = commentArray[2];
		var comment_box = Dom.get('comments_'+offerId);
		if (YAHOO.mycoupons.offerObject.offerArray[offerId]){
			YAHOO.mycoupons.offerObject.offerArray[offerId] = false;
			var attributes = {
			   height: { to: 0 }
			};
			var myAnim = new YAHOO.util.Anim(comment_box, attributes,0.5,YAHOO.util.Easing.easeNone);
			myAnim.onComplete.subscribe(
				function(){
					Dom.replaceClass(comment_box,'comments_visible','comments');	
				}
			);
			myAnim.animate();
		}
		else{
			Dom.replaceClass(comment_box,'comments','comments_visible_noscroll');
			var box_height = (YAHOO.mycoupons.offerObject.offerArrayHeight[offerId]) ? YAHOO.mycoupons.offerObject.offerArrayHeight[offerId] : comment_box.offsetHeight;
			if (box_height > 250){
				Dom.replaceClass(comment_box,'comments_visible_noscroll','comments_visible');
				box_height = 250;
			}
			YAHOO.mycoupons.offerObject.offerArrayHeight[offerId] = box_height;
			YAHOO.mycoupons.offerObject.offerArray[offerId] = true;
			comment_box.style.height = 0;		
			var attributes = {
			   height: { to: box_height }
			};
			var myAnim = new YAHOO.util.Anim(comment_box, attributes,0.5,YAHOO.util.Easing.easeNone);
			myAnim.animate();
		}
	},
	markAsWorked:function(){
		var workedArray = this.id.split('~');
		var offerId = workedArray[1];
		var page = workedArray[2];
		var file = workedArray[3];
		var query_string = workedArray[4];
		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.offerObject.handleWorkedSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.offerObject;
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('offer_worked.php','POST',YAHOO.mycoupons.callbackStructure,'offer_id=' + offerId + '&page=' + page + '&file=' + file + '&query_string=' + query_string);
	},
	handleWorkedSuccess:function(response){
		YAHOO.mycoupons.helperObject.showMessage(response.responseText);
	},
	markAsFailed:function(){
		var failedArray = this.id.split('~');
		var offerId = failedArray[1];
		var page = failedArray[2];
		var file = failedArray[3];
		var query_string = failedArray[4];
		YAHOO.mycoupons.offerObject.offerId = offerId;
		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.offerObject.handleFailedSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.offerObject;
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('offer_failed.php','POST',YAHOO.mycoupons.callbackStructure,'offer_id=' + offerId + '&page=' + page + '&file=' + file + '&query_string=' + query_string);
	},
	handleFailedSuccess:function(response){
		YAHOO.mycoupons.helperObject.showMessage(response.responseText, YAHOO.mycoupons.offerObject.addComment);
	},
	deleteComment:function(tableRow, offer_id, created_date){
		if (confirm('Are you sure you want to delete this comment?')){
			YAHOO.mycoupons.offerObject.offer_id = offer_id;
			YAHOO.mycoupons.commentRow = tableRow;
			YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.offerObject.handleCommentDeleteSuccess;
			YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.offerObject;
			YAHOO.mycoupons.ajaxObject.sendAjaxCall('delete_comments.php','POST',YAHOO.mycoupons.callbackStructure,'action=delete&offer_id=' + offer_id + '&created_date=' + created_date);
		}
	},
	handleCommentDeleteSuccess:function(response){
		if (response.responseText)
		{
			alert(response.responseText);
		}
		var comment_box=YAHOO.mycoupons.commentRow.parentNode.parentNode;
		Dom.get('offer_comment_'+YAHOO.mycoupons.offerObject.offer_id).removeChild(comment_box);
		var box_label = Dom.get('view_comments_'+YAHOO.mycoupons.offerObject.offer_id).innerHTML;
		var box_label_amount = box_label.match(/\((\d){1}\)/);
		var comment_count = parseInt(box_label_amount[1]) - 1;
		Dom.get('view_comments_'+YAHOO.mycoupons.offerObject.offer_id).innerHTML = 'View Comments (' + comment_count + ')';
	}
};

// The object that holds all the functions relating to merchants
YAHOO.mycoupons.merchantObject = {
	merchantId: null,
	addCategory:function(){
		var list = Dom.get('submit_merchant_categories').value;
		var sel = Dom.get('merchant_categories');
		var new_cat = sel.options[sel.selectedIndex].text;
		if(new_cat == "Select Category To Add"){
			return;
		}
		if(list == ""){
			list = new_cat;
			Dom.get('submit_merchant_categories').value = list;
		}
		else {
			var list_arr = list.split(";");
			for(x=0; x<list_arr.length; x++){
				if(list_arr[x]==new_cat){
					return;
				}
			}
			if(list_arr.length<5){
				list = list + ";" + new_cat;
				Dom.get('submit_merchant_categories').value = list;
			}
			else{
				YAHOO.mycoupons.helperObject.showMessage("You can only add 5 categories. Please delete one before adding another");
			}
		}
	},
	handleMerchantSaveChanges:function(){
		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.merchantObject.handleMerchantSaveChangesSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.merchantObject;
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('save_merchant.php','POST',YAHOO.mycoupons.callbackStructure,'merchant_id=' + Dom.get('edit_merchant_merchant_id').value+'&name=' + escape(Dom.get('submit_merchant_name').value)+'&description=' + escape(Dom.get('submit_merchant_description').value)+'&logo_url=' + escape(Dom.get('submit_merchant_logo_url').value)+'&default_url=' + escape(Dom.get('submit_merchant_default_url').value)+'&affiliate_url=' + escape(Dom.get('submit_merchant_affiliate_url').value)+'&aliases=' + escape(Dom.get('submit_merchant_aliases').value)+'&categories=' + escape(Dom.get('submit_merchant_categories').value));
	},
	handleMerchantSaveChangesSuccess:function(response){
		YAHOO.mycoupons.helperObject.showMessage(response.responseText,YAHOO.mycoupons.helperObject.reloadPage);
	},
	submitEmailNotification:function(){
		var email = Dom.get('email_notification_address').value;

		if(email==""){
			alert('Please enter an email address');
			Dom.get('email_notification_address').focus();
			return false;
		}
		if (!YAHOO.mycoupons.helperObject.checkEmailSyntax(email)){
			alert('You must provide a valid Email Address');
			Dom.get('email_notification_address').focus();
			return false;
		}

		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.merchantObject.handleSubmitEmailNotificationSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.merchantObject;
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('email_notification.php','POST',YAHOO.mycoupons.callbackStructure,'merchant_id=' + Dom.get('email_notification_merchant_id').value+'&email=' + escape(Dom.get('email_notification_address').value));
	},
	handleSubmitEmailNotificationSuccess:function(response){
		alert(response.responseText);
		//YAHOO.mycoupons.helperObject.showMessage(response.responseText,YAHOO.mycoupons.helperObject.reloadPage);
	},
	inactivateAll:function(){
		var offerArray = Dom.getElementsByClassName('check_box');
		var offer_ids = "";
		for (i=0; i < offerArray.length; ++i){
			if(offerArray[i].checked)
			{
				offer_ids += offerArray[i].id.replace('check_', '') + ",";
			}
		}

		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.merchantObject.handleInactivateAllSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.merchantObject;
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('inactivate_remove_all.php','POST',YAHOO.mycoupons.callbackStructure,'type=inactivate&offer_ids=' + offer_ids);
	},
	handleInactivateAllSuccess:function(response){
		//alert(response.responseText);
		YAHOO.mycoupons.helperObject.showMessage(response.responseText,YAHOO.mycoupons.helperObject.reloadPage);
	},
	removeAll:function(){
		var offerArray = Dom.getElementsByClassName('check_box');
		var offer_ids = "";
		for (i=0; i < offerArray.length; ++i){
			if(offerArray[i].checked)
			{
				offer_ids += offerArray[i].id.replace('check_', '') + ",";
			}
		}

		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.merchantObject.handleRemoveAllSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.merchantObject;
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('inactivate_remove_all.php','POST',YAHOO.mycoupons.callbackStructure,'type=remove&offer_ids=' + offer_ids);
	},
	handleRemoveAllSuccess:function(response){
		//alert(response.responseText);
		YAHOO.mycoupons.helperObject.showMessage(response.responseText,YAHOO.mycoupons.helperObject.reloadPage);
	},
	merchantSuggestInit:function(){
		var dataSource = new YAHOO.util.XHRDataSource("/ajax/merchant_suggest.php");
		dataSource.responseType = YAHOO.util.XHRDataSource.TYPE_TEXT;
		dataSource.responseSchema = {
			recordDelim: "\n",
			fieldDelim : "\t"
		};
		dataSource.maxCacheEntries = 5;
		var autoComp = new YAHOO.widget.AutoComplete("submit_code_name","submit_code_autocomplete_container", dataSource);
		autoComp.generateRequest = function(sQuery) { 
	        return "?submit_code_name=" + sQuery ; 
	    }; 
		autoComp.useShadow = true;
		var pos = Dom.getXY('submit_code_autocomplete');
		pos[1] += Dom.get('submit_code_autocomplete').offsetHeight -10; 
        Dom.setXY('submit_code_autocomplete',pos); 
		return {
			oDS: dataSource,
			oAC: autoComp
		};
	},
	adminMerchantChecked:function(){
		var merchantArray = this.id.split('_');
		var merchantId = merchantArray[1];

		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.merchantObject.handleMarkCheckedSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.merchantObject;
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('mark_checked.php','POST',YAHOO.mycoupons.callbackStructure,'merchant_id=' + merchantId);
	},
	handleMarkCheckedSuccess:function(response){
		alert(response.responseText);
		//YAHOO.mycoupons.helperObject.showMessage(response.responseText,YAHOO.mycoupons.helperObject.reloadPage);
	},
	adminMerchantEdit:function(){
		var merchantArray = this.id.split('_');
		var merchantId = merchantArray[1];
		YAHOO.mycoupons.formObject.getForm('admin_merchant_edit', merchantId);
	},
	initCarousel: function(ev) {
		Dom.replaceClass('myc_carousel_container','hidden','shown');
        var carousel = new YAHOO.widget.Carousel("myc_carousel", {
        	animation: {speed: 0.5}, isCircular: true, 
        	numVisible: 4, autoPlayInterval: 5000, scrollIncrement: 1
        }
        );
        carousel.render();
        carousel.show();
        carousel.startAutoPlay();
    }
};

// The object that holds all the functions relating to members
YAHOO.mycoupons.memberObject = {
	redirectUrl: null,
	checkSignup: function(){
		var email = YAHOO.lang.trim(Dom.get('signup_email').value);
		var username = YAHOO.lang.trim(Dom.get('signup_username').value);
		var password = YAHOO.lang.trim(Dom.get('signup_password').value);
		var password_confirm = YAHOO.lang.trim(Dom.get('signup_password_confirm').value);
		var terms = Dom.get('signup_terms').checked;

		if(email==""){
			Dom.get('signup_message').innerHTML = 'Please enter an email address.';
			Dom.get('signup_email').focus();
			return false;
		}
		if (!YAHOO.mycoupons.helperObject.checkEmailSyntax(email)){
			Dom.get('signup_message').innerHTML = 'You must provide a valid Email Address.';
			Dom.get('signup_email').focus();
			return false;
		}
		if(username==""){
			Dom.get('signup_message').innerHTML = 'Please enter a username.';
			Dom.get('signup_username').focus();
			return false;
		}
		if (!username.match(/^[0-9a-zA-Z\-]+$/)){
			Dom.get('signup_message').innerHTML = 'Usernames can only contain alphanumeric characters and dashes.';
			Dom.get('signup_username').focus();
			return false;	
		}
		if(password==""){
			Dom.get('signup_message').innerHTML = 'Please enter a password.';
			Dom.get('signup_password').focus();
			return false;
		}
		if(password.length<6 || password.length>12){
			Dom.get('signup_message').innerHTML = 'Password must be between 6 and 12 characters.';
			Dom.get('signup_password').focus();
			return false;
		}
		if(password!=password_confirm){
			Dom.get('signup_message').innerHTML = 'Your password does not match.';
			Dom.get('signup_password_confirm').focus();
			return false;
		}
		if(!terms){
			Dom.get('signup_message').innerHTML = 'You must agree to the Terms of Use.';
			Dom.get('signup_terms').focus();
			return false;
		}

		YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.memberObject.handleCheckSignupSuccess;
		YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.merchantObject;
		YAHOO.mycoupons.ajaxObject.sendAjaxCall('check_signup.php','POST',YAHOO.mycoupons.callbackStructure,'email=' + email + '&username=' + username);

		Dom.get('submit_signup').disabled = true;
	},
	handleCheckSignupSuccess: function(response){
		if(response.responseText=="")
		{
			YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.memberObject.handleSubmitSignupSuccess;
			YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.merchantObject;
			YAHOO.mycoupons.ajaxObject.sendAjaxCall('submit_signup.php','POST',YAHOO.mycoupons.callbackStructure,Dom.get('member_signup'));
		}
		else
		{
			Dom.get('signup_message').innerHTML = response.responseText;
			Dom.get('submit_signup').disabled = false;
		}
	},
	handleSubmitSignupSuccess: function(response){
		if (response.responseText.match(/eversave/)){
			var messageArray = response.responseText.split('~~~');
			YAHOO.mycoupons.memberObject.redirectUrl = messageArray[0];
			YAHOO.mycoupons.helperObject.showMessage(messageArray[1],YAHOO.mycoupons.memberObject.redirectPage);
		}
		else {
			YAHOO.mycoupons.memberObject.redirectUrl = '/';
			YAHOO.mycoupons.helperObject.showMessage(response.responseText,YAHOO.mycoupons.memberObject.redirectPage);
		}
	},
	redirectPage: function(){
		window.location = YAHOO.mycoupons.memberObject.redirectUrl;
	},
	checkProfileForm: function(){
		if (!YAHOO.lang.trim(Dom.get('profile_first_name').value).length){
			Dom.get('profile_message').innerHTML = 'You must provide your first name.';
			Dom.get('profile_first_name').value = '';
			Dom.get('profile_first_name').focus();
			return false;
		}
		var email = YAHOO.lang.trim(Dom.get('profile_email').value);
		if (!email.length){
			Dom.get('profile_message').innerHTML = 'You must provide an Email Address.';
			Dom.get('profile_email').value = '';
			Dom.get('profile_email').focus();
			return false;
		}
		if (!YAHOO.mycoupons.helperObject.checkEmailSyntax(email)){
			Dom.get('profile_message').innerHTML = 'You must provide a valid Email Address.';
			Dom.get('profile_email').focus();
			return false;
		}
		return true;
	},
	submitProfileForm: function(){
		if (YAHOO.mycoupons.memberObject.checkProfileForm()){
			YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.memberObject.handleMemberProfileSaveSuccess;
			YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.merchantObject;
			YAHOO.mycoupons.ajaxObject.sendAjaxCall('save_profile.php','POST',YAHOO.mycoupons.callbackStructure,Dom.get('profile_form'));
		}
	},
	handleMemberProfileSaveSuccess: function(response){
		var xmlDoc = response.responseXML.documentElement; 
		var elementArray= xmlDoc.getElementsByTagName("message");
		var message = elementArray[0].firstChild.data;
		elementArray= xmlDoc.getElementsByTagName("field");
		var field = elementArray[0].firstChild.data;
		Dom.get('profile_message').innerHTML = message;
		if (!field.match(/^success$/)){
			Dom.get(field).focus();	
		}
	},
	getChangePasswordForm: function(){
		YAHOO.mycoupons.formObject.getForm('change_password','');
	},
	handleChangePassword: function(){
		if (YAHOO.mycoupons.memberObject.checkChangePasswordForm()){
			YAHOO.mycoupons.callbackStructure.success = YAHOO.mycoupons.memberObject.handleChangePasswordSuccess;
			YAHOO.mycoupons.callbackStructure.scope = YAHOO.mycoupons.merchantObject;
			YAHOO.mycoupons.ajaxObject.sendAjaxCall('change_password.php','POST',YAHOO.mycoupons.callbackStructure,'new_password=' + Dom.get('change_password_new_password').value + '&new_password2=' + Dom.get('change_password_new_password2').value + '&old_password=' + Dom.get('change_password_old_password').value);
		}
	},
	checkChangePasswordForm: function(){
		if (!YAHOO.lang.trim(Dom.get('change_password_old_password').value).length){
			Dom.get('change_password_message').innerHTML = 'You must provide your old password.';
			Dom.get('change_password_old_password').value = '';
			Dom.get('change_password_old_password').focus();
			return false;
		}
		var new_password = YAHOO.lang.trim(Dom.get('change_password_new_password').value);
		var new_password2 = YAHOO.lang.trim(Dom.get('change_password_new_password2').value);
		if (!new_password.length){
			Dom.get('change_password_message').innerHTML = 'You must provide your new password.';
			Dom.get('change_password_new_password').value = '';
			Dom.get('change_password_new_password').focus();
			return false;
		}
		if (!new_password2.length){
			Dom.get('change_password_message').innerHTML = 'You must confirm your new password.';
			Dom.get('change_password_new_password2').value = '';
			Dom.get('change_password_new_password2').focus();
			return false;
		}
		if (new_password != new_password2){
			Dom.get('change_password_message').innerHTML = 'Your New Password entries do not match.';
			Dom.get('change_password_new_password').value = '';
			Dom.get('change_password_new_password2').value = '';
			Dom.get('change_password_new_password').focus();
			return false;
		}
		if (new_password.length < 6){
			Dom.get('change_password_message').innerHTML = 'Your New Password must be at least 6 characters.';
			Dom.get('change_password_new_password2').value = '';
			Dom.get('change_password_new_password').focus();
			return false;
		}
		return true;
	},
	handleChangePasswordSuccess: function(response){
		var xmlDoc = response.responseXML.documentElement; 
		var elementArray= xmlDoc.getElementsByTagName("message");
		var message = elementArray[0].firstChild.data;
		elementArray= xmlDoc.getElementsByTagName("field");
		var field = elementArray[0].firstChild.data;
		if (!field.match(/^success$/)){
			Dom.get('change_password_message').innerHTML = message;
			Dom.get(field).focus();	
		}
		else {
			YAHOO.mycoupons.helperObject.showMessage(message);
		}
	}
};
// The code that will assign all the event listeners
Event.onContentReady('tab_offers',YAHOO.mycoupons.listenerObject.tabOffersInit);
Event.onContentReady('submit_code_form',YAHOO.mycoupons.listenerObject.submitCodeCalendarInit);
Event.onContentReady('submit_newsletter_form',YAHOO.mycoupons.listenerObject.submitNewsletterInit);
Event.onContentReady('tab_local',YAHOO.mycoupons.listenerObject.tabLocalInit);
Event.onContentReady('submit_contact_form',YAHOO.mycoupons.listenerObject.submitContactInit);
Event.onContentReady('tab_products',YAHOO.mycoupons.listenerObject.tabProductsInit);
Event.onContentReady('submit_signup',YAHOO.mycoupons.listenerObject.signupInit);
Event.onContentReady('edit_merchant_add_category',YAHOO.mycoupons.listenerObject.addCategoryInit);
Event.onContentReady('narrow_results_category',YAHOO.mycoupons.productObject.categoryMenuInit);
Event.onContentReady('profile_avatar',YAHOO.mycoupons.listenerObject.avatarImageInit);
Event.onContentReady('large_product_image',YAHOO.mycoupons.listenerObject.largeProductImageInit);
Event.onContentReady('profile_form',YAHOO.mycoupons.listenerObject.profileFormInit);
Event.onContentReady('email_notification',YAHOO.mycoupons.listenerObject.emailNotificationInit);
Event.onContentReady('remove_inactivate_all',YAHOO.mycoupons.listenerObject.removeInactivateAllInit);
Event.onDOMReady(YAHOO.mycoupons.listenerObject.applyMultpleEvents);

//-->