// EGCDisplay.js

function EGCDisplayInit(){
	var f = document.forms.EGCAdd;//, sm = f.sendMonth, sd = f.sendDay, to = new Date(), currDay = to.getDate();
	YUE.on($('egcDispDetails'), 'click', function(e){getFadeUp('egcDetailsFade',true,'Small');});
	YUE.on($('dateDetailsSpan'),'click',function(e){ getFadeUp('dateDetailsFade',true,'Small'); },false);
	//YUE.on(sm,'change', buildDays);
	YUE.on($('addToBag'),'click',submitEGCAdd);
	YUE.on(f.comment_0,'keyup',function(el){ return function(e){ limitChars(el,200); }; }(f.comment_0));
	/*var mm = {
		0:{name:"January",value:"01"},
		1:{name:"February",value:"02"},
		2:{name:"March",value:"03"},
		3:{name:"April",value:"04"},
		4:{name:"May",value:"05"},
		5:{name:"June",value:"06"},
		6:{name:"July",value:"07"},
		7:{name:"August",value:"08"},
		8:{name:"September",value:"09"},
		9:{name:"October",value:"10"},
		10:{name:"November",value:"11"},
		11:{name:"December",value:"12"}
	}
	buildMonths();
	function buildMonths(){
		var go = true, mo = to.getMonth(), yr = to.getFullYear(), count = numDays(mo,yr);
		sm.options.length = 0;
		while(go){
			sm.options[sm.options.length] = new Option(mm[mo].name, mm[mo].value);
			sm.options[sm.options.length - 1].year = yr;
			sm.options[sm.options.length - 1].toshow = count > 60 ? 60 - (count - numDays(mo,yr)) : numDays(mo,yr);
			go = count < 60 ? true : false;
			
			if(mo + 1 <= 11){mo++;}
			else{mo = 0;yr++;}
			
			count += numDays(mo,yr);
		}
		buildDays();
	}
	function buildDays(e){
		sd.options.length = 0;
		var m = sm.options[sm.selectedIndex].value, mi, d, s;
		for(x in mm){
			if(mm[x].value == m){
				mi = x;
			}
		}
		//d = numDays(mi, sm.options[sm.selectedIndex].year)
		s = to.getMonth() == mi ? to.getDate() : 1;
		e = sm.options[sm.selectedIndex].toshow;
		for(var x=0; x < e; x++){
			sd.options[sd.options.length] = new Option(s, s);
			s++;
		}
	}
	function numDays(iMonth, iYear){
		var n = 32 - new Date(iYear, iMonth, 32).getDate();
		if(iMonth != to.getMonth()){
			return n;
		}else{
			return n - to.getDate() + 1;
		}

	}
*/
	
	
	
	
	function submitEGCAdd(){
		var f = document.forms.EGCAdd;
		f.recipEmail.value = f.recipEmail.value.toLowerCase();
		f.recipEmailConfirm.value = f.recipEmailConfirm.value.toLowerCase();
		
		var fields = {
			receiver:{
				or:f.receiver,
				val:function (r){
					var filter = /^[a-zA-Z\d]+(([\'\,\.\- #][a-zA-Z\d ])?[a-zA-Z\d]*[\.]*)*$/;
					return filter.test(r.value);
				},
				msg: errors.noRecipient
			},
			buyer:{
				or:f.buyer,
				val:function (r){
					var filter = /^[a-zA-Z\d]+(([\'\,\.\- #][a-zA-Z\d ])?[a-zA-Z\d]*[\.]*)*$/;
					return filter.test(r.value);
				},
				msg: errors.noSender
			},
			recipEmail:{
				or:f.recipEmail,
				val: function(el){
					var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
					return filter.test(el.value);
				},
				msg: errors.invalidEmail
			},
			recipEmailConfirm:{
				or:f.recipEmailConfirm,
				val: function(el){
					return el.value.length > 0 && el.value == f.recipEmail.value;
				},
				msg: errors.emailMismatch
			},
			comment_0:{
				or:f.comment_0,
				val:function(el){
					return el.value.length < 1 || el.value.length < 201;
				},
				msg: errors.messageLength
			},
			partNumber:{
				or:f.partNumber,
				val:function(el){
					return el.selectedIndex > 0;
				},
				msg: errors.invalidAmount
			}
		}
		var validates = true, errCnt = 0, errsPresent=false, o=f.val, lf;
		for(x in fields){
			var cf = fields[x];
			if(!cf.val(cf.or)){
				YUD.addClass(cf.or,'fieldError');
				lf = x;
				errCnt++;
			}else{
				YUD.removeClass(cf.or,'fieldError')
			}
		}
		if(errCnt > 0){
			if(errCnt > 1){
				$('errSpan').innerHTML = errors.correctHighlighted;
			}else{
				$('errSpan').innerHTML = fields[lf].msg;
			}
			YUD.addClass($('errSpan'),'errMode');
		}else{
			/*$('errSpan').innerHTML = '';
			YUD.removeClass($('errSpan'),'errMode');
			f.requestedShipDate.value = (sm.options[sm.selectedIndex].year) + '-' + sm.options[sm.selectedIndex].value +'-'+ sd.options[sd.selectedIndex].value +' 00:00:00';
			f.field2.value = (f.receiver.value + '||' + f.buyer.value + '||' + f.recipEmail.value).replace(/[",']/g, '').replace(/\&/g, 'and');
			var comm = f.orderComment.value.replace(/\#/g,'').replace(/[\n\f\r]/g, ' ').replace(/[",']/g,'');
			if(comm.length > 0){
				f.comment_0.value = f.comment_0.value.concat(comm.slice(0,40),'|',
					comm.slice(40,80),'|',
					comm.slice(80,120),'|',
					comm.slice(120,160),'|',
					comm.slice(160,200));
			}
			*/
			var egcAddCB = {
				success:function(o){
					var prc = f.partNumber.value - 88889000, sku = f.partNumber.value;
					//setTimeout("makeRequest('/webapp/wcs/stores/servlet/MiniOrderItemDisplay', 'egcadd')",1000);
					
					HOL.miniCart.update();
					
					//f.comment_0.value = '';
					//buildMonths();
					HOL.miniCart.getCart('add');
					YUD.setStyle($("viewBag"), "display", "inline");
					
					YUD.replaceClass($('addToBag'), "processingBtn","itemAddedBtn");
					
					setTimeout(function(){
							YUE.on($('addToBag'),'click',submitEGCAdd);
							YUD.setStyle($('addToBag'), "cursor", "pointer");
							YUD.replaceClass($('addToBag'), "itemAddedBtn","addToBagBtn");
							f.reset();
						}, 2500);
				},
				failure:function(o){
					YUE.on($('addToBag'),'click',submitEGCAdd);
					YUD.setStyle($('addToBag'), "cursor", "pointer");
					YUD.replaceClass($('addToBag'), "processingBtn","addToBagBtn");
					f.reset();
					//failed.
				}
			}
			
			YUE.removeListener($("addToBag"), "click");
			YUD.setStyle($("addToBag"), "cursor", "default");
			YUD.replaceClass($('addToBag'), "addToBagBtn","processingBtn");
			
			YUC.setForm(f);
			YUC.asyncRequest(f.method, f.action, egcAddCB);
		}
	}
	
	getVBImg();
}

function getVBImg(){
	var cartNum = HTB.readCookie('myCart');
	var cartParts = cartNum ? cartNum.split(",") : null;
	var num = cartParts ? cartParts[0] : null;
	if(num != '0' && cartNum != null){
		YUD.setStyle($("viewBag"), "display", "inline");
		HTB.fixPngs();
	}else{
		return;
	}
}

function limitChars(fe, num){
		fe.value = fe.value.slice(0, num);
}

YUE.on(window,'load',EGCDisplayInit);
