var CFWI = {
	Helpers:{
		vpScrollX:0,
		vpScrollY:0,
		goToUrl:function(url){
			if(typeof(url)!=='undefined'&&url.length>0){
				parent.location.href=url;	
			}
		},
		getObj:function(id){
			var d=document,i,el;
			el=d.getElementById?d.getElementById(id):d.all?d.all[id]?d.all[id]:d[id]:'null';
			if(typeof(el)==='undefined'||typeof(el)==='null'){
				if(d.forms.length>0){
					for(i=0; !el && i<d.forms.length; i++){
						el=d.forms[i][id];
					}
				}
			}
			return el;
		},
		getObjWH:function(obj){
			if(typeof(obj)!=='undefined'){
				if(obj.offsetWidth&&obj.offsetHeight){return [obj.offsetWidth,obj.offsetHeight];}
			}
		},
		getObjXY:function(obj){
			var x=y=0;
			if(typeof(obj)!=='undefined'&&obj.offsetParent){
				x=obj.offsetLeft;
				y=obj.offsetTop;
				while(obj=obj.offsetParent){
					x+=obj.offsetLeft;
					y+=obj.offsetTop;
				}
			}
			return [x,y];
		},
		getEventTarget:function(e){
			var el;
			if(typeof(e)!=='undefined'){
				el=e.target||e.srcElement;
				return el;
			}
		},
		getViewportWH:function(){
			var w=window.innerWidth?window.innerWidth:document.documentElement?document.documentElement.clientWidth:document.body.clientWidth?document.body.clientWidth:null;
			var h=window.innerHeight?window.innerHeight:document.documentElement?document.documentElement.clientHeight:document.body.clientHeight?document.body.clientHeight:null;
			if(w&&h){
				return [w,h];
			}
		},
		getViewportScroll:function(){
			var x=window.innerWidth?window.pageXOffset:document.documentElement?document.documentElement.scrollLeft:document.body.scrollLeft?document.body.scrollLeft:null;
			var y=window.innerHeight?window.pageYOffset:document.documentElement?document.documentElement.scrollTop:document.body.scrollTop?document.body.scrollTop:null;
			return [x,y];
		}
	},
	Events:{
		attachEventListener:function(target, eventType, functionRef, capture){
			if(typeof target.addEventListener!=="undefined"){
				target.addEventListener(eventType,functionRef,capture);
			}else if(typeof target.attachEvent!=="undefined"){
				target.attachEvent("on"+eventType,functionRef);
				window.attachEvent("onunload",function(e){
					CFWI.Events.removeListeners(target,eventType,functionRef,capture);
				});
			}else{
				return false;
			}
			return true;
		},
		removeListeners:function(target, eventType, functionRef, capture){
			if(typeof target.removeEventListener!=="undefined"){
				target.removeEventListener(eventType,functionRef,capture);
			}else if(typeof target.detachEvent!=="undefined"){
				target.detachEvent("on"+eventType,functionRef);
				//alert('event '+eventType+' for function '+functionRef+' has been removed');
			}else{
				return false;
			}
			return true;
		},
		cancelEvent:function(e){
			if(e.preventDefault){e.preventDefault();}
			e.returnValue = false;
			return false;
		}
	},
	Page:{
		clipBody:function(b){
			var d=document.body;
			var f=CFWI.Helpers.getObj('modal'); // document.forms[0];
			if(typeof(f)==='undefined'||f===null){
				f=CFWI.Helpers.getObj('container').parentNode;
				if(typeof(f)==='undefined'||f===null){
					return;
				}
			}
			var w=CFWI.Helpers.getViewportWH()[0];
			var h=CFWI.Helpers.getViewportWH()[1];
			if(b){
				CFWI.Helpers.vpScrollX = CFWI.Helpers.getViewportScroll()[0];
				CFWI.Helpers.vpScrollY = CFWI.Helpers.getViewportScroll()[1];
				d.style.position='absolute';
				d.style.overflow='hidden';
				d.style.width=w+'px';
				d.style.height=h+'px';
				d.style.clip='rect(0 '+w+'px '+h+'px 0)';
				if(document.all){ f.style.position='absolute'; } else { f.style.position='relative'; }
				f.style.left=(0-CFWI.Helpers.vpScrollX)+'px';
				f.style.top=(0-CFWI.Helpers.vpScrollY)+'px';
			}else{
				d.style.position='static';
				d.style.overflow='auto';
				d.style.width='auto';
				d.style.height='auto';
				d.style.clip='rect(auto auto auto auto)';
				f.style.position='static';
				f.style.left='0px';
				f.style.top='0px';
				window.scrollBy(CFWI.Helpers.vpScrollX,CFWI.Helpers.vpScrollY);
			}
		},
		goModal:function(sender,id){
			if(typeof(id)==='undefined'){
				return;
			}else{
				var maskId=id+'-mask';
				var iframeId=id+'-iframe';
				CFWI.showItem(maskId,'block');
				//CFWI.showItem(id,'block');
				
				/* set mask width/height */
				CFWI.Helpers.getObj(maskId).style.width=CFWI.Helpers.getViewportWH()[0]+'px';
				CFWI.Helpers.getObj(maskId).style.height=CFWI.Helpers.getViewportWH()[1]+'px';
				/* dynamically size iframe height */
				CFWI.Helpers.getObj(iframeId).style.height=(CFWI.Helpers.getViewportWH()[1]*.8)+'px';
				/* clip body element */
				CFWI.Page.clipBody(true);
				/* move mask & content into view */
				CFWI.Helpers.getObj(maskId).style.left=CFWI.Helpers.vpScrollX+'px';
				CFWI.Helpers.getObj(maskId).style.top=CFWI.Helpers.vpScrollY+'px';
				CFWI.Helpers.getObj(id).style.left=CFWI.Helpers.vpScrollX+'px';
				CFWI.Helpers.getObj(id).style.top=CFWI.Helpers.vpScrollY+'px';
				CFWI.Page.fade(id,'in',100);
				/* set iframe's location property */
				if(parent.frames[iframeId]){
					window.setTimeout(function(e){
						parent.frames[iframeId].location.replace(sender.href);
					},1500);
				}
			}
		},
		goNonModal:function(sender,id){
			if(typeof(id)==='undefined'){
				return;
			}else{
				var maskId=id+'-mask';
				var iframeId=id+'-iframe';
				CFWI.Page.fade(id,'out',100);
				window.setTimeout(function(e){
					CFWI.hideItem(maskId,'none');
					CFWI.Page.clipBody(false);
					if(parent.frames[iframeId]){
						parent.frames[iframeId].location.replace(sender.href);
					}
				},500);
			}
		},
		getOpacity:function(id){
			var o=CFWI.Helpers.getObj(id);
			if(typeof(o)!=='undefined'){
				if(typeof(o.style.opacity)!=='undefined'){
					if(o.style.opacity.toString().length>0){
						return (o.style.opacity*100);
					}else{
						return '';
					}
				}else if(typeof(o.style.MozOpacity)!=='undefined'){
					if(o.style.MozOpacity.toString().length>0){
						return (o.style.MozOpacity*100);
					}else{
						return '';
					}
				}else if(typeof(o.style.KhtmlOpacity)!=='undefined'){
					if(o.style.KhtmlOpacity.toString().length>0){
						return (o.style.KhtmlOpacity*100);
					}else{
						return '';
					}
				}else if(typeof(o.style.filter)!=='undefined'){
					if(o.style.filter.toString().length>0){
						return parseInt(o.style.filter.toString());
					}else{
						return '';
					}
				}
			}
		},
		setOpacity:function(id,v){
			var o=CFWI.Helpers.getObj(id),x=(v/100);
			if(typeof(o)!=='undefined'){
				o.style.opacity=(x);
				o.style.MozOpacity=(x);
				o.style.KhtmlOpacity=(x);
				o.style.filter="alpha(opacity="+v+")";
			}
		},
		fade:function(id,which,ms,display){
			var timer=0,i,speed,v,o;
			if(typeof(ms)==='undefined'){ms=500;}
			if(typeof(display)==='undefined'){display='block';}
			speed=Math.round(ms/100);
			if(typeof(id)!=='undefined'&&typeof(which)!=='undefined'){
				o=CFWI.Helpers.getObj(id);
				switch(which){
					case 'out':
						v=CFWI.Page.getOpacity(id);
						if(v.toString().length===0||v.toString().length>1){
							for(i=100;i>=0;i--){
								setTimeout("CFWI.Page.setOpacity('"+id+"',"+i+");",(timer*speed));
								timer++;
							}
							setTimeout(function(){
								o.style.display='none';
							},ms);
						}
						break;
					case 'in':
						v=CFWI.Page.getOpacity(id);
						if(v.toString().length===0||v.toString().length<3){
							CFWI.Helpers.getObj(id).style.display=display;
							for(i=0;i<=100;i++){
								setTimeout("CFWI.Page.setOpacity('"+id+"',"+i+");",(timer*speed));
								timer++;
							}
						}
						break;
					default:
						break;
				}
			}
		}
	},
	showItem:function(id,m){
		var obj=CFWI.Helpers.getObj(id);
		if(typeof(obj)!=='undefined'){
			if(typeof(m)==='undefined'){
				m='block';
			}
			obj.style.display=m;
		}
	},
	hideItem:function(id,m){
		var obj=CFWI.Helpers.getObj(id);
		if(typeof(obj)!=='undefined'){
			if(typeof(m)==='undefined'){
				m='none';
			}
			obj.style.display=m;
		}
	},
	centerItem:function(obj){
		if(typeof(obj)!=='undefined'){
			if(obj.style.display==='block'||obj.style.display===''){
				var posX=((CFWI.Helpers.getViewportWH()[0]-obj.offsetWidth)/2)+CFWI.Helpers.getViewportScroll()[0]+'px';
				var posY=((CFWI.Helpers.getViewportWH()[1]-obj.offsetHeight)/2)+CFWI.Helpers.getViewportScroll()[1]+'px';
				obj.style.left=posX;
				obj.style.top=posY;
				return true;
			}
		}else{
			return false;
		}
	},
	alignItem:function(obj,target){
		if(typeof(obj)!=='undefined'){
			var posX=CFWI.Helpers.getObjXY(target)[0]+'px';
			var posY=CFWI.Helpers.getObjXY(target)[1]+'px';
			obj.style.left=posX;
			obj.style.top=posY;
		}else{
			return false;
		}
	},
	restrictInput:function(e,what){
		var key,keyChar,regexp;
		if(window.event){key=e.keyCode;}else if(e.which){key=e.which;}
		keyChar=String.fromCharCode(key);
		switch(what){
			case 'alpha':
				regexp=/[a-zA-Z\-\']|\0|[\b]|\t/;
				if(!regexp.test(keyChar)){
					if(e.preventDefault){e.preventDefault();}
					e.returnValue = false;
					return false;
				}
				break;
			case 'alphanumeric':
				regexp=/[a-zA-Z\-\']|\d|\0|[\b]|\t/;
				if(!regexp.test(keyChar)){
					if(e.preventDefault){e.preventDefault();}
					e.returnValue = false;
					return false;
				}
				break;
			case 'integer':
				regexp=/\d|\0|[\b]|\t/;
				if(!regexp.test(keyChar)){
					if(e.preventDefault){e.preventDefault();}
					e.returnValue = false;
					return false;
				}
				break;
			case 'decimal':
				regexp=/\d|\.|\0|[\b]|\t/;
				if(!regexp.test(keyChar)){
					if(e.preventDefault){e.preventDefault();}
					e.returnValue = false;
					return false;
				}
				break;
			case 'email':
				regexp=/\S|\t/;
				if(!regexp.test(keyChar)){
					if(e.preventDefault){e.preventDefault();}
					e.returnValue = false;
					return false;
				}
			default:
				break;
		}
	}
};
function toggleCssClass(target,id,cssClassName){
	var el=CFWI.Helpers.getObj(id);
	if(typeof(el)!=='undefined' && typeof(target)!=='undefined'){
		if(target.tagName.toLowerCase()==='span'){
			target=target.parentNode;
		}
		if(target.id.toLowerCase()==='tab1'){
			if(el.className.indexOf(' '+cssClassName)===-1){
				el.className+=' '+cssClassName;
			}
		}else{
			if(el.className.indexOf(' '+cssClassName)>-1){
				el.className= el.className.replace(' '+cssClassName,'');
			}
		}
	}
}
/* legacy JavaScript code from original site */
	// Popup Windows //
	var win= null;
	function popWin(mypage,myname,w,h,scroll){var winl = (screen.width-w)/2,wint = (screen.height-h)/2,settings  ='height='+h+',';settings +='width='+w+',';settings +='top='+wint+',';settings +='left='+winl+',';settings +='scrollbars='+scroll+',';settings +='resizable=no';win=window.open(mypage,myname,settings);if(parseInt(navigator.appVersion) >= 4){win.window.focus();}}
	//Launch Pop-up Window for Portfolio & Watermark Mortgage Group
	function launch(theURL,winName) {var win=null;y=175,w=(screen.width-10),h=(screen.height-y),features = 'height='+h+',';features +='width='+w+',';features +='top=0,';features +='left=0,';features +='location=yes,';features +='menubar=yes,';features +='resizable=yes,';features +='scrollbars=yes,';features +='status=yes,';features +='toolbar=yes';win=window.open(theURL,winName,features);if(parseInt(navigator.appVersion) >= 4) {win.window.focus();}}
	// Get Photo in Popup Window //
	function getLargePhoto(URL,W,H){var photoWin= null,wScroll= "no",reSize= "no",aW = screen.availWidth,aH = screen.availHeight,wW=20 + (parseInt(W)),wH=40 + (parseInt(H));if (wW > aW) { wW = aW; wScroll = "yes"; reSize = "yes"; }if (wH > aH) { wH = aH; wW = (wW + 30); wScroll = "yes"; reSize = "yes"; }var winTop=(aH - wH)/2,winLeft=(aW - wW)/2;var strImage="<html>\r";strImage += "<head>\r";strImage += "<SCR"+"IPT language='JavaScript'> \r";strImage += "<!-- \r";strImage += "function reSize(){ \r";strImage += "if (window.width != "+wW+"){ \r";strImage += " var wW = "+wW+";} \r";strImage += "if (window.height != "+wH+"){ \r";strImage += " var wH = "+wH+";} \r";strImage += "  window.resizeTo(wW,wH); \r";strImage += "  window.moveTo("+winLeft+","+winTop+"); \r";strImage += "} \r";strImage += "//--> \r";strImage += "</scr"+"ipt> \r";strImage += "</head> \r";strImage += "<body bgcolor='#FFFFFF' topmargin='5' leftmargin='5' marginwidth='5' marginheight='5' onLoad='reSize();'> \r";strImage += "<p align='center'><a href='javascript:self.close();'> \r";strImage += "<img src='"+URL+"' border='0' width='"+W+"' height='"+H+"'> \r";strImage += "</a></p> \r";strImage += "</body></html> \r";photoWin = window.open('','photoWin','width='+wW+',height='+wH+',left='+winLeft+',top='+winTop+',scrollbars='+wScroll+',resizable='+reSize+'');photoWin.window.focus();photoWin.document.open();photoWin.document.write(strImage);photoWin.document.close();}
	// Morph Popup Windows when needed
	function morph(w,h){var sw=screen.availWidth,sh=screen.availHeight,l=(sw-w)/2,t=(sh-h)/2;window.moveTo(l,t);window.resizeTo(w,h);}
