var DW = {
	Forms : {
		ContactUs : {
			Validate:function() {
				if( $("contactFirstName").value.blank() ) {
					DW.Forms.HAF("contactFirstName");
					return false;
				}
				if( $("contactLastName").value.blank() ) {
					DW.Forms.HAF("contactLastName");
					return false;
				}
				if( $("contactEmailAddress").value.blank() ) {
					DW.Forms.HAF("contactEmailAddress");
					return false;
				}
				if( $("contactAddress1").value.blank() ) {
					DW.Forms.HAF("contactAddress1");
					return false;
				}
				if( $("contactCity").value.blank() ) {
					DW.Forms.HAF("contactCity");
					return false;
				}
				if( $("contactMessage").value.blank() ) {
					DW.Forms.HAF("contactMessage");
					return false;
				}
				return true;
			},
			WeddingDateBlur:function() {
				if( $("contactWeddingDate").value.blank() ) {
					$("contactWeddingDate").value="dd/mm/yyyy";
				}
			},
			WeddingDateClick:function() {
				if( $("contactWeddingDate").value=="dd/mm/yyyy") {
					$("contactWeddingDate").value="";
				}
			}
		},
		HAF:function(id) {
			new Effect.Highlight( $(id) );
			$(id).focus();
		}
	},
	Homepage : {
		Search : {
			defaultText:"search here...",
			Click:function() {
				if( $("searchBox").value==DW.Homepage.Search.defaultText ) {
					$("searchBox").value="";
				}
			},
			Blur:function() {
				if( $("searchBox").value=="" ) {
					$("searchBox").value=DW.Homepage.Search.defaultText;
				}
			}
		}
	},
	HomePageWidget : {
		_currentSlide:1,
		_lastSlide:null,
		_slideSpeed:3,
		_doFade:false,
		Start:function( argSlideSpeed ) {
			DW.HomePageWidget._slideSpeed = argSlideSpeed;					
			new PeriodicalExecuter( DW.HomePageWidget.RotateSlide , DW.HomePageWidget._slideSpeed );
		},
		RotateSlide:function() {
			var cSlides = $$("div.bannerPhoto");
			var cSlideLength = cSlides.length;
						
			if( DW.HomePageWidget._lastSlide == null ) {
				DW.HomePageWidget._lastSlide = cSlideLength;
			}																								
			
			$("slide_"+DW.HomePageWidget._currentSlide).style.zIndex=100;														
			
			if( DW.HomePageWidget._doFade ) {								
				cSlides.each( 
					function(name,index){ 
						if( name.id != "slide_" + DW.HomePageWidget._currentSlide) { 
							name.style.zIndex=79; 
				
							if( name.id != DW.HomePageWidget._lastSlide) {
								name.hide();
							}
						} 
					}
				);
			}
			
			if( DW.HomePageWidget._lastSlide!=null ) {				
				$("slide_"+DW.HomePageWidget._lastSlide).style.zIndex=80;					
			}
			
			new Effect.Appear( $("slide_"+DW.HomePageWidget._currentSlide) );
							
			DW.HomePageWidget._lastSlide = DW.HomePageWidget._currentSlide;
						
			DW.HomePageWidget._currentSlide++;
			
			if( DW.HomePageWidget._currentSlide > cSlideLength ) {
				DW.HomePageWidget._currentSlide = 1;
				DW.HomePageWidget._lastSlide = cSlides.length;
			}	
		},
		ShowDebug:function() {
			$("debug").update( "Last Slide : " + DW.HomePageWidget._lastSlide + " - Current Slide : " + DW.HomePageWidget._currentSlide  );
		}		
	}
}

String.prototype.isEmail = function () { 
	var rx = new RegExp("\\w+([-+.\’]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"); 
	var matches = rx.exec(this); 
	return (matches != null && this == matches[0]); 
}

function isNumeric(x) { 
	var y=parseInt(x); 
	if (isNaN(y)) {
	   return false; 
	} else {
		return true;
	}
} 

function LoadingAjax(txt) {
	if(typeof(txt)=="undefined") {
		txt = "Loading...";
	}
	return "<div class='ajaxMsg' id='widgetAjaxMsg'> "+txt+"</div>";
}

function parseJSON( json ){
	var o = eval('(' + json + ')');
	if( o.redirectURL )
	{
		document.location = o.redirectURL;
		return;
	}
	if( $("message") != null ) new Element.remove( "message" );
	if( o.errMsg )
	{
		if( o.errMsgTitle == null ) o.errMsgTitle = "Error";
		if( o.errMsgTimer == null ) o.errMsgTimer = 5000;
		tw.ShowMessage( o.errMsgTitle, o.errMsg, "error", o.errMsgTimer, o.errMsgPosition );
		return o;
	}
	if( o.msgTitle || o.msg )
	{
		if( o.msgTimer == null ) o.msgTimer = 5000;
		tw.ShowMessage( o.msgTitle, o.msg, o.msgClass, o.msgTimer, o.msgPosition );
	}
	return o;
}

var errFunc = function(t) {
	var win = window.open("", "win", "width=1024,height=700,resizable=yes,scrollbars=yes,status=no"); // a window object
	win.document.open("text/html", "replace");
	win.document.write( "<html><body style='margin:0'><div style='border-bottom:1px solid #222;background:#666;padding:10px;'><h1 style='color:#FFF;margin:0;padding:0;'>Digital Crew Ajax Error</h1></div><div style='padding:10px;'>"+t.responseText.replace(/^\s+|\s+$/, '') + "</div></body></html>" );
	win.document.close();
	win.focus();
}