

var navtab;
// prepare namespace
var target = window.target || {};

YAHOO.util.Event.onDOMReady(function() {
      load = new target.PrepareTargetHoliday();
});

target.PrepareTargetHoliday = function() {
  this.init();
};

/**
* Load and initialize layers, Quick Info z-index
* Slider for perfect gift pairs, and layer click events
*/ 
target.PrepareTargetHoliday.prototype = {

	/**
	* prepare and set visibility of pop-ups, click events and form state
	*/
	init: function() {
	
		this.fixZIndex();
		this.initCarousel();
		this.initTabs();
		//perfect pairings overlay 
		window.myOverlay = new YAHOO.widget.Overlay('pairings-popup',{
			visible:false
		});
		myOverlay.render();

		this.targetHideOverlay("close-pair1",myOverlay);
		this.targetHideOverlay("close-pair2",myOverlay);
		this.targetShowOverlay("pair-link",myOverlay, true);
			
		//checklists popup overlays
		window.myOverlay1 = new YAHOO.widget.Overlay('check-popup',{
			visible:false
		});
		myOverlay1.render();		

		this.targetHideOverlay("close-check1",myOverlay1);
		this.targetHideOverlay("close-check2",myOverlay1);
		this.targetShowOverlay("check-link",myOverlay1, true);			

		//calendar popup overlays
		window.myOverlay2 = new YAHOO.widget.Overlay('calendar-popup',{
			visible:false
		});
		myOverlay2.render();			

		this.targetHideOverlay("close-cal1",myOverlay2);
		this.targetHideOverlay("close-cal2",myOverlay2);
		this.targetShowOverlay("calendar-link",myOverlay2, true);	
		
		//quicklinks popup overlays
		window.myOverlay3 = new YAHOO.widget.Overlay('links-popup',{
			visible:false
		});
		myOverlay3.render();
		myOverlay3.center();
			
		this.targetHideOverlay("close-links1",myOverlay3);
		this.targetHideOverlay("close-links2",myOverlay3);

		this.targetShowOverlay("links-link",myOverlay3);			

		//mobile-reminder form popup
		window.myOverlay4 = new YAHOO.widget.Overlay('mobile-popup',{
			visible:false
		});
		myOverlay4.render();
			
		this.targetHideOverlay("close-mob1",myOverlay4);
		this.targetHideOverlay("close-mob3",myOverlay4);
		this.targetShowOverlay("mobile-link",myOverlay4);
			
		//mobile-popup-success after successful form submissions
 		window.myOverlay5 = new YAHOO.widget.Overlay('mobile-popup-success',{
			visible:false
		});
		myOverlay5.render();
			
		this.targetHideOverlay("close-mob2",myOverlay5);	
		YAHOO.util.Event.addListener("mobile-sign", "click", target.processCalendarMobileSign, myOverlay5, true);
						
		// prevent form submissions without validation				
		this.disableFormsSubmit();
			
		//email-popup
		window.myOverlay6 = new YAHOO.widget.Overlay('email-popup',{
			visible:false
		});
		myOverlay6.render();
			
		this.targetHideOverlay("close-email1",myOverlay6);
		this.targetHideOverlay("close-email3",myOverlay6);
		this.targetShowOverlay("email-link",myOverlay6);
						
		window.myOverlay7 = new YAHOO.widget.Overlay('email-popup-success',{
			visible:false
		});
		myOverlay7.render();

		this.targetHideOverlay("close-email-success",myOverlay7);
		YAHOO.util.Event.addListener("email-sign", "click", target.processCalendarEmailSign, myOverlay7, true);
	
		
		// calendar	specific event pop-ups			
		window.myOverlay8 = new YAHOO.widget.Overlay('calendar-event-popup',{
			visible:false
		});
		myOverlay8.render();
		this.targetHideOverlay("calendar-event-close",myOverlay8);
			
		window.myOverlay9 = new YAHOO.widget.Overlay('calendar-popup-sync',{
			visible:false
		});
		myOverlay9.render();
			
		this.targetHideOverlay("close-calendar-sync",myOverlay9);
		this.targetHideOverlay("calendar-sync-slose-btn",myOverlay9);
		this.targetShowOverlay("sync-link",myOverlay9);
			
		YAHOO.util.Event.addListener("calendar-sync-submit-btn", "click", target.processCalendarSync, myOverlay9, true);
		
		window.myOverlay10 = new YAHOO.widget.Overlay('checklist-email',{
			visible:false
		});
		myOverlay10.render();
			
		this.targetHideOverlay("close-chacklist-email",myOverlay10);
		this.targetShowOverlay("checklist-email-link",myOverlay10);
			
		YAHOO.util.Event.addListener("checklist-email-submit", "click", target.processChecklistEmail, myOverlay9, true);
				
		window.myOverlay11 = new YAHOO.widget.Overlay('checklist-email-success',{
			visible:false
		});
		myOverlay11.render();

		this.targetHideOverlay("checklist-email-success-close",myOverlay11);
			
		this.initCalendarEvents();
		this.initChecklistLink();
		this.sliderInit();
		this.initSlideTabs();
		this.calendarHovers();
		}, 
	
		/** 
		* Prepare the various site tabs
		*/
		initTabs:function() {
		    var tabView = new YAHOO.widget.TabView('tabs');
				var tabshot2 = new YAHOO.widget.TabView('shot-tabs2');
				var tabmonth = new YAHOO.widget.TabView('calendar-month');
				navtab = new YAHOO.widget.TabView('nav-tabs');
				var checkpopup = new YAHOO.widget.TabView('check-popup');		
		},
		/*	
			Perfect Pairs slide tabs
	 */
	 initSlideTabs:function() {
	 		var ul_cont = document.getElementById("gift-tabs");
	 		var show_number=0;
	 		var num=0;
	 		if (ul_cont)
	 			{		var links = ul_cont.getElementsByTagName('a');
	 					num=show_number;
	 					all_num=links.length;
						if (links.length){
							for (var j=num;j<links.length;j++){
								var link = links[j];
								if (j<(num+15)) link.style.display="block";
								else link.style.display="none";
							}
						}
				}
			if (all_num<=15) {
				next.className="";
			}
			// click on next / prev 
	 		var prev=document.getElementById("back");
	 		var next=document.getElementById("next");
	 		
	 		next.onclick=function(){
	 			prev.className="active";
				if ((show_number+15)<all_num) {
					show_number=show_number+15;
					if ((show_number+15)>=all_num)
						this.className="";
					else this.className="active";
			 	for (var j=0;j<links.length;j++){
								var link = links[j];
								if ((j>=show_number) && (j<(show_number+15))) link.style.display="block";
								else link.style.display="none";
							}
				navtab.set('activeIndex', show_number);
			 }
			 	return false;
			 }
			 prev.onclick=function(){
			 	next.className="active";
			 	if ((show_number)>0) {
			 	for (var j=0;j<links.length;j++){
								var link = links[j];
								if ((j<show_number) && (j>=(show_number-15))) link.style.display="block";
								else link.style.display="none";
							}
				show_number=show_number-15;
				navtab.set('activeIndex', show_number);
				if ((show_number)<=0)
						this.className="";
				else this.className="active";
			 }
			 else {this.className="";}
			 	return false;
			 }
	 },
		/** 
		* Rollover Calendar Tabs
		*/
		calendarHovers:function() {
			var calendar = document.getElementById("calendar-month");
			var lists = calendar.getElementsByClassName("tabs");
			var list = lists[0].getElementsByTagName("li");
			var li1=document.getElementById("month1");
			var li2=document.getElementById("month2");

						li1.onmouseover = function(){
						 if (this.className.indexOf("selected") != -1) {
								this.className+=' gold';
								li2.className='white';
							}
							else {
								this.className='white';
								li2.className+=' gold';
								}
						}
						li1.onmouseout = function(){
							 if (this.className.indexOf("selected") != -1) {
								this.className="selected";
								li2.className= li2.className.replace('white','');
							}
							else {
								this.className='';
								li2.className= li2.className.replace('gold','');
							}
						}
						li2.onmouseover = function(){
						 if (this.className.indexOf("selected") != -1) {
								this.className+=' gold';
								li1.className='white';
							}
							else {
								this.className='white';
								li1.className+=' gold';
								}
						}
						li2.onmouseout = function(){
							 if (this.className.indexOf("selected") != -1) {
								this.className="selected";
								li1.className= li1.className.replace('white','');
							}
							else {this.className='';
							li1.className= li1.className.replace('gold','');
							}
						}
		},

	/*	Initialize scroll bar. syncing a slider and content area on checklist overlay */
	sliderInit:function() {
 	var slider = new YAHOO.widget.Slider.getVertSlider("sliderbg", "sliderthumb", 0, 318);
 	slider.animate = false; 
 	 YAHOO.lang.augmentObject(slider, { 
	        contentNode     : YAHOO.util.Dom.get('slider-content'), /* slider content*/
	        containerNode   : YAHOO.util.Dom.get('slider-wrapper'), 
	 
	        scrollContent   : function (offset) { 
	            var conversionFactor =  
	                    (this.contentNode.offsetHeight - 
	                        this.containerNode.offsetHeight) / 
	                    (this.thumb.topConstraint + 
	                        this.thumb.bottomConstraint); 
	 
	            YAHOO.util.Dom.setStyle(this.contentNode, 'top', 
	                (-1 * Math.floor(offset * conversionFactor)) + 'px'); 
	 
	        }
	    });
 	slider.subscribe('change', slider.scrollContent, slider, true); 
 	
 	
 	
 		//	alert(slider);
	},

	/** 
	* Prevent any form submission without validation
	*/			
	disableFormsSubmit: function(){
			
		var mobileform = document.getElementById("form-mobile-record-calendar");
		if (mobileform){
			mobileform.onsubmit = function(){
			    return false;
			}
		}
		var mobileform = document.getElementById("form-email-record-calendar");
		if (mobileform){
			mobileform.onsubmit = function(){
				   return false;
			}
		}
		var mobileform = document.getElementById("form-calendar-synch");
		if (mobileform){
			mobileform.onsubmit = function(){
			    return false;
			}
		}
			
		var mobileform = document.getElementById("checklist-email-form");
		if (mobileform){
			mobileform.onsubmit = function(){
			    return false;
			}
		}
			
	},
	/** 
	* Initialize all the specfic calendar events 
	*/	
	initCalendarEvents: function(){
		var l_left=0;
		var calendar = document.getElementById("calendar-month");
		if (!calendar){
			return '';
		}
		var tables = calendar.getElementsByTagName("table");
		if (tables.length){
			for (var i=0;i<tables.length;i++){
				var links = tables[i].getElementsByTagName('a');
				if (links.length){
					for (var j=0;j<links.length;j++){
						var link = links[j];

						link.onclick = function(){
							target.fetchEventCalendarContent(this);
							window.eventPopupFlag = true;
							window.myOverlay8.show();
							window.myOverlay8.center();

							return false;
						}								
					}
				}
			}
		}
	},
		/** 
	* Initialize checklist download link 
	*/	
	initChecklistLink: function(){
		var checklist = document.getElementById("check-popup");
		var download_link=document.getElementById("download-checklist");
		if (!checklist){
			return '';
		}
		var urlLink = document.getElementById("urlLink");
		var ul = checklist.getElementsByTagName("ul");
		if (ul.length){
			for (var i=0;i<ul.length;i++){
				var links = ul[i].getElementsByTagName('a');
				if (links.length){
					for (var j=0;j<links.length;j++){
						var link = links[j];
						link.onclick = function(){
							var link_href = this.getAttribute("rel");
							if (download_link) 
								{
									download_link.setAttribute("href",link_href);
									urlLink.value = link_href;
								} 
							return false;
						}								
					}
			}
		}
	}
	},	
	
	

	/** 
	* initialize the perfect gift pairings slider
	*/
	initCarousel: function(){ 
	
		window.arrayCarousels = {};
		window.arrayCarousels["nintendo_wii"]= new this.targetCarousel("nintendo_wii-carousel-container","nintendo_wii-slider");
		window.arrayCarousels["microsoft-xbox"]= new this.targetCarousel("microsoft-xbox-carousel-container","microsoft-xbox-slider");
		window.arrayCarousels["philips-lcd-tv"]= new this.targetCarousel("philips-lcd-tv-carousel-container","philips-lcd-tv-slider"); 
		window.arrayCarousels["apple_g3_8gb_ipod"]= new this.targetCarousel("apple_g3_8gb_ipod-carousel-container","apple_g3_8gb_ipod-slider"); 
		window.arrayCarousels["kodak_easyshare_camera"]= new this.targetCarousel("kodak_easyshare_camera-carousel-container","kodak_easyshare_camera-slider"); 
		window.arrayCarousels["garmin_nuvi_gps"]= new this.targetCarousel("garmin_nuvi_gps-carousel-container","garmin_nuvi_gps-slider"); 
		window.arrayCarousels["rockband2"]= new this.targetCarousel("rockband2-carousel-container","rockband2-slider"); 
		window.arrayCarousels["tassimo_hot_beverage"]= new this.targetCarousel("tassimo_hot_beverage-carousel-container","tassimo_hot_beverage-slider"); 
		window.arrayCarousels["kitchen_aid_mixer"]= new this.targetCarousel("kitchen_aid_mixer-carousel-container","kitchen_aid_mixer-slider"); 
		window.arrayCarousels["kitchen_aid_foodprocessor"]= new this.targetCarousel("kitchen_aid_foodprocessor-carousel-container","kitchen_aid_foodprocessor-slider"); 
		window.arrayCarousels["black_decker_drill"]= new this.targetCarousel("black_decker_drill-carousel-container","black_decker_drill-slider"); 
		window.arrayCarousels["razor_scooter"]= new this.targetCarousel("razor_scooter-carousel-container","razor_scooter-slider"); 
		window.arrayCarousels["nintendo_dsi"]= new this.targetCarousel("nintendo_dsi-carousel-container","nintendo_dsi-slider"); 
		window.arrayCarousels["bakugan_battle_brawlers"]= new this.targetCarousel("bakugan_battle_brawlers-carousel-container","bakugan_battle_brawlers-slider");  
 		
	},
	/**
	* Process and set perfect gift pairing slider clicks 
	*/
	targetCarousel: function(holder, list){
		var carouselholder = document.getElementById(holder);
		this.carousel = document.getElementById(list);
		this.currentSliderItem = 0;
		this.next = null;
		this.prev = null;
		this.sliderItemsCount = 0;
	
		if (carouselholder){
			var links = carouselholder.getElementsByTagName('a');
			for (var i=0;i<links.length;i++){
				if (links[i].className.indexOf('right') != -1){
					this.next = links[i];
				}
				if (links[i].className.indexOf('left') != -1){
					this.prev = links[i];
				}
			}
		
			this.sliderItemsCount = carouselholder.getElementsByTagName('li').length;
			var itemsCount=this.sliderItemsCount;
			if (this.sliderItemsCount<2){
				this.next.style.display = 'none';
				this.prev.style.display = 'none';
			}
			this.next.currentObject = this;
			this.prev.currentObject = this;
						
			this.next.onclick = function(){
				var obj = this.currentObject;
				obj.currentSliderItem++;
				obj.currentSliderItem = obj.currentSliderItem % obj.sliderItemsCount;
				var startMargin = parseInt(obj.carousel.style.marginLeft);
				if (!startMargin){
					startMargin = 0;
				}
			
				var endMargin = -obj.currentSliderItem*189;
				var marginInterval = endMargin - startMargin;
				for (var i = 0;i<=20;i++){
					(function(){
						var tmp = i;
						setTimeout(function(){
						
							obj.carousel.style.marginLeft = startMargin + marginInterval/20*tmp + "px";  
						},tmp*30);
					})();
				}
				return false;
			}
			this.prev.onclick = function(){
				var obj = this.currentObject;
				obj.currentSliderItem--;
				if (obj.currentSliderItem <0){
					obj.currentSliderItem = obj.sliderItemsCount - 1;
				}
				var startMargin = parseInt(obj.carousel.style.marginLeft);
				if (!startMargin){
					startMargin = 0;
				}					
				var endMargin = -obj.currentSliderItem*189;
				var marginInterval = endMargin - startMargin;
				for (var i = 0;i<=20;i++){
					(function(){
						var tmp = i;
						setTimeout(function(){
						
							obj.carousel.style.marginLeft = startMargin + marginInterval/20*tmp + "px";  
						},tmp*30);
					})();
				}
				return false;
			}
		
		}
	},

	/**
	* Show an overlay
	*/
	targetShowOverlay: function(link_id,obj,centeroverlay){
		if (document && document.getElementById){
			var link = document.getElementById(link_id);
			if (link){
				link.onclick = function(){
					window.myOverlay9.hide();
					window.myOverlay6.hide();
					window.myOverlay4.hide();
					window.myOverlay10.hide();
					// window.myOverlay.hide();
					// window.myOverlay1.hide();
					// window.myOverlay2.hide();
					if (obj.show){
						obj.show();
					}
					if (centeroverlay) {
						obj.center();
					}
					return false;
				}
			}
		}
	},

	/**
	* Hide and overlay
	*/
	targetHideOverlay: function (link_id,obj){
		var link = document.getElementById(link_id);
		if (link){
			link.onclick = function(){
				window.myOverlay9.hide();
				window.myOverlay6.hide();
				window.myOverlay4.hide();
				window.myOverlay10.hide();
				window.myOverlay8.hide();
				obj.hide();
				return false;
			}
		}
	},
	/**
	* Promo Reveal (top of left nav) fix for appearing on top of pop-ups
	*/
	fixZIndex: function(){
		setTimeout(function(){
			var div = document.getElementById("header_shadow_sq");
			if (div){
				div.parentNode.style.zIndex = 1;
			}
		},1000);
	}

};

/**
* Display appropriate event content on date rollover 
*/
target.fetchEventCalendarContent= function(obj){
	var box = YAHOO.util.Dom.getElementsByClassName('event-popup-box','div','calendar-event-popup');	
	if (box.length){
		var children = YAHOO.util.Dom.getElementsByClassName('event');
		YAHOO.util.Dom.setStyle( children, "display" , "none" );
		
		var closeLink = document.getElementById("calendar-event-close");
		if (closeLink){
			closeLink.className = 'close';
		}
		
		//if (obj.hasAttribute("rel")) {
			var EventID = obj.getAttribute("rel");
			var el = document.getElementById(EventID);
			el.style.display="block";
			if (closeLink){
				closeLink.className = 'close ' + EventID;
			}
			
		//}
	}
}
/** 
* validate mobile reminder sign-up form
*/
target.validateCalendarMobile = function() {

	var elements = YAHOO.util.Dom.getElementsByClassName('required','','form-mobile-record-calendar');
	
	var errors = YAHOO.util.Dom.getElementsByClassName('error-text','label','form-mobile-record-calendar');
	for (var i=0;i<errors.length;i++){
		errors[i].parentNode.removeChild(errors[i]);
	}
	if (elements.length == 0){
		return true;
	}

	var flag = true;
	for (var i in elements){
		elements[i].className = elements[i].className.replace('error','');
		var elval = elements[i].value;
		if (elements[i].type == 'text'){
			if (!elval){
				flag = false;
				elements[i].className += " error ";
				target.formValidateCheckErrorMessage(elements[i]);
				
			}else{
				elements[i].className = elements[i].className.replace('error','');
			}
		}
		if (elements[i].tagName.toLowerCase() == 'select'){
			if (elval == 0){
				flag = false;
				elements[i].className += " error ";
				target.formValidateCheckErrorMessage(elements[i]);
			}else{
				elements[i].className = elements[i].className.replace('error','');
			}
		}
		if (elements[i].type == 'checkbox'){
			if (!elements[i].checked){
				flag = false;
				elements[i].className += " error ";
				document.getElementById("mr-checkbox-text").className += " error ";
				target.formValidateCheckErrorMessage(elements[i]);
			}else{
				elements[i].className = elements[i].className.replace('error','');
				document.getElementById("mr-checkbox-text").className = document.getElementById("mr-checkbox-text").className.replace('error','');
				
			}
		}
	}
	return flag;
};
/**
* utility function for displaying form validation error
* sets class to error-text and error message to rel value attribute
*/ 
target.formValidateCheckErrorMessage = function (obj) {
	if (obj.hasAttribute("rel")){
		var errorText = obj.getAttribute("rel");
		var error = document.createElement("label");
		error.setAttribute("class","error-text");
		error.innerHTML = errorText;
		obj.parentNode.insertBefore(error,obj);
	}
};
/** 
* if calendar mobile reminder form succeeds,
* call @see #submitform 
* and display appropriate content
*/
target.processCalendarMobileSign = function() {
	if (target.validateCalendarMobile()){
		target.submitform("form-mobile-record-calendar");
		myOverlay4.hide();
		myOverlay5.show();
	}
	return false;
};
/** 
* if calendar email reminder form succeeds,
* call @see #submitform 
* and display appropriate content
*/
target.processCalendarEmailSign = function(){
	if (target.validateCalendarEmail()){
		target.submitform("form-email-record-calendar");
		myOverlay6.hide();
		myOverlay7.show();
	}
	return false;
};
/** 
* if calendar sync form succeeds,
* call @see #submitform 
* and display appropriate content
*/
target.processCalendarSync = function(){
	if (target.validateCalendarsynch()){
		target.submitform("form-calendar-synch");
		myOverlay9.hide();
	}
	return false;
};
/** 
* if  smart start tell-a-friend form succeeds,
* call @see #submitform 
* and display appropriate content
*/
target.processChecklistEmail = function(){
	if (target.validateChecklistEmail()){
		target.submitform("checklist-email-form");
		myOverlay10.hide();
		myOverlay11.show();
	}
	return false;
};
/** 
* if calendar email reminder form succeeds,
* call @see #submitform 
* and display appropriate content
*/
target.validateCalendarEmail = function(){
	var elements = YAHOO.util.Dom.getElementsByClassName('required','','form-email-record-calendar');
	
	var errors = YAHOO.util.Dom.getElementsByClassName('error-text','label','form-email-record-calendar');
	for (var i=0;i<errors.length;i++){
		errors[i].parentNode.removeChild(errors[i]);
	}
	
	if (elements.length == 0){
		return true;
	}
	var flag = true;
	for (var i in elements){
		elements[i].className = elements[i].className.replace('error','');
		var elval = elements[i].value;
		if (elements[i].type == 'text'){
			if (!elval){
				flag = false;
				elements[i].className += " error ";
				target.formValidateCheckErrorMessage(elements[i]);
			}else{
				elements[i].className = elements[i].className.replace('error','');
			}
		}
		if (elements[i].tagName.toLowerCase() == 'select'){
			if (elval == 0){
				flag = false;
				elements[i].className += " error ";
				target.formValidateCheckErrorMessage(elements[i]);
			}else{
				elements[i].className = elements[i].className.replace('error','');
			}
		}
		if (elements[i].type == 'checkbox'){
			if (!elements[i].checked){
				flag = false;
				elements[i].className += " error ";
				document.getElementById(elements[i].id+"label").className += " error ";
				target.formValidateCheckErrorMessage(elements[i]);
			}else{
				elements[i].className = elements[i].className.replace('error','');
				document.getElementById(elements[i].id+"label").className = document.getElementById("mr-checkbox-text").className.replace('error','');
			}
		}
	}
	
	var email1 = document.getElementById("hfEmail");
	var email2 = document.getElementById("hfEmailConf");
	if (email1 && email2){
		if (email1.value != email2.value && email2.value ){
			target.formValidateCheckErrorMessage(email2);
		}
	}
	return flag;
};

/** 
* Validate Calendar synchronize form
*/
target.validateCalendarsynch = function(){
	var elements = YAHOO.util.Dom.getElementsByClassName('required','','form-calendar-synch');
	
	var errors = YAHOO.util.Dom.getElementsByClassName('error-text','label','form-calendar-synch');
	for (var i=0;i<errors.length;i++){
		errors[i].parentNode.removeChild(errors[i]);
	}
	
	if (elements.length == 0){
		return true;
	}
	var flag = true;
	for (var i in elements){
		elements[i].className = elements[i].className.replace('error','');
		var elval = elements[i].value;
		if (elements[i].type == 'text'){
			if (!elval){
				flag = false;
				elements[i].className += " error ";
				target.formValidateCheckErrorMessage(elements[i]);
			}else{
				elements[i].className = elements[i].className.replace('error','');
			}
		}
		if (elements[i].tagName.toLowerCase() == 'select'){
			if (elval == 0){
				flag = false;
				elements[i].className += " error ";
				target.formValidateCheckErrorMessage(elements[i]);
			}else{
				elements[i].className = elements[i].className.replace('error','');
			}
		}
	}
	return flag;
};

/**
* Validate Smart Start tell-a-friend email
*/
target.validateChecklistEmail = function(){
	var elements = YAHOO.util.Dom.getElementsByClassName('required','','checklist-email-form');
	
	var errors = YAHOO.util.Dom.getElementsByClassName('error-text','label','checklist-email-form');
	for (var i=0;i<errors.length;i++){
		errors[i].parentNode.removeChild(errors[i]);
	}
	
	if (elements.length == 0){
		return true;
	}
	var flag = true;
	for (var i in elements){
		elements[i].className = elements[i].className.replace('error','');
		var elval = elements[i].value;
		if (elements[i].type == 'text'){
			if (!elval){
				flag = false;
				elements[i].className += " error ";
				target.formValidateCheckErrorMessage(elements[i]);
			}else{
				elements[i].className = elements[i].className.replace('error','');
			}
		}
		if (elements[i].tagName.toLowerCase() == 'select'){
			if (elval == 0){
				flag = false;
				elements[i].className += " error ";
				target.formValidateCheckErrorMessage(elements[i]);
			}else{
				elements[i].className = elements[i].className.replace('error','');
			}
		}
	}
	return flag;
};

/** 
* Utility function used to submit various forms via YUI AJAX functions
*/
target.submitform = function (obj_id){
	var obj = document.getElementById(obj_id);
	if (!obj){
		return '';
	}
	var formObject = obj;
	var m = "GET";
	if (formObject.hasAttribute('method')){
		m = (formObject.getAttribute('method').toLowerCase() == 'post'?'POST':'GET');
	}
	var url = "/";
	if (formObject.hasAttribute("action")){
		url = formObject.getAttribute("action",2);
	}
    YAHOO.util.Connect.setForm(formObject);
    YAHOO.util.Connect.asyncRequest(m, url, function(){});
    YAHOO.util.Connect.resetFormState(); 
};
