function OfieClass_gfredesign_rospartofie() {
	var self = this;
	this.chCountry   = 'b'; this.sPersonality = 'gfredesign_rospartofie'; this.stMagCode = 'GF'; this.sFormName  = 'gfredesign_rospartofie_form'; this.sOfieHTML = ""; this.fldName_name = "name"; this.fldName_addr1 = "address1"; this.fldName_addr2 = "address2"; this.fldName_city = "city"; this.fldName_state = "state"; this.fldName_zip = "zipCode"; this.fldName_email ="email";
	this.formLabels;
	this.bUsingLabels = true;
	this.bUsingAddress2 = false;

	this.bTCM_Dom = document.getElementById ? true : false;
	this.usrAgnt    = navigator.userAgent.toLowerCase();
	this.bTCM_Gecko = (this.usrAgnt.indexOf("gecko")!=-1);
	this.bTCM_Mac   = (this.usrAgnt.indexOf('mac')!=-1);

	
	this.arUSStates;
	this.arCANProvs;


	this.jsTrim=  function (stInput) {
		var stResult;
		var obRegex = new RegExp("(^\\s+)|(\\s+$)");
		stResult = stInput.replace(obRegex, "");
		return(stResult);
	}	


	this.getProp = function(sProp) {return this[sProp]}
	this.setProp = function(sProp,sVal) {this[sProp]=sVal}

	this.setLabels = function() {
		this.formLabels = new Object();
		this.formLabels[this.fldName_name]  = ["Full Name"];
		this.formLabels[this.fldName_addr1] = ["Address"];
		this.formLabels[this.fldName_addr2] = ["Address2"];
		this.formLabels[this.fldName_city]  = ["City"]; 
		this.formLabels[this.fldName_state] = ["State/Province"];
		this.formLabels[this.fldName_zip] = ["Zip/Po"];
		this.formLabels[this.fldName_email] = ["E-mail"];
	}	
	
	this.setFormLabels = function(fieldName, label, errLabel) {
		this.formLabels[fieldName][0] = label;
		this.formLabels[fieldName][1] = errLabel;
	}
	this.clearLabels = function(f) {
		if (self.bUsingLabels) {
			
			if  ("Full Name" == f["name"].value) f["name"].value = "";
			if  ("Address" == f["address1"].value) f["address1"].value = "";
			if  (self.bUsingAddress2 && "Address 2" == f["address2"].value) f["address2"].value = "";
			if  ("City" == f["city"].value) f["city"].value = "";
			if  ("Zip/Po" == f["zipCode"].value) f["zipCode"].value = "";			
			if  ("E-mail" == f["email"].value) f["email"].value = "";
		}
	}

	this.getStateOptionList = function(){ 	
		var arStatesOptions = "", stStateOptionsList = "";
		this.arUSStates = ["AA", "AE", "AK", "AL", "AP", "AR", "AS", "AZ", "CA", "CO", "CT", "DC", "DE", "FL", "GA", "GU", "HI", "IA", "ID", "IL", "IN", "KS", "KY", "LA", "MA", "MD", "ME", "MI", "MN", "MO", "MS", "MT", "NC", "ND", "NE", "NH", "NJ", "NM", "NV", "NY", "OH", "OK", "OR", "PA", "PR", "RI", "SC", "SD", "TN", "TX", "UT", "VA", "VI", "VT", "WA", "WI", "WV", "WY"];
		this.arCANProvs = ["AB", "BC", "MB", "NB", "NL", "NS", "NT", "NU", "ON", "PE", "QC", "SK", "YT"];

		arStatesOptions = this.arUSStates.concat(this.arCANProvs).sort();

		for(var i = 0; i < arStatesOptions.length; ++i){
			stStateOptionsList += '<option value="'+arStatesOptions[i]+'">'+arStatesOptions[i]+'</option>';	
		}
		return(stStateOptionsList);
	}		
	
	this.submitOfie = function(f,w,h,t,l,props){
		w = parseInt(w); h = parseInt(h);
		var sw = screen.width; var sh = screen.height;
		if(w > sw){w = sw;}  if(h > sh){h=sh;}
		var left = l == "c" ? ((sw - w) / 2) : l;
		var top = t == "c" ? ((sh - h) / 2) : t;

		self.clearLabels(f);
	    	var upsellWin = window.open("", "upsellWin", "width=" + w +",height=" + h + ",top="+ top + ",left=" + left + "," + props);
	   	f.target = "upsellWin";
   		return true;
	}



	this.ofie_init = function(){
	   if (self.bUsingLabels) self.initLabels();	
	}

	this.initLabels = function()
	{
		f = document.forms[this.sFormName];
		var oOfie = this
		with (f)
		{
			for (var i = 0; i < elements.length; i++) 
			{
				var formElement = elements[i];
				if (formElement.type == "text") 
				{
					formElement.onfocus = function() {fieldFocus = true; if (this.value == oOfie.getProp('formLabels')[this.name][0] || this.value == oOfie.getProp('formLabels')[this.name][1]) this.value = "";};
					formElement.onblur = function() {fieldFocus = false; if (oOfie.jsTrim(this.value) == "") this.value = oOfie.getProp('formLabels')[this.name][0];};
		  		}
			}
		}
	}
} 

var gfredesign_rospartofieObj = new OfieClass_gfredesign_rospartofie(); 

gfredesign_rospartofieObj.setLabels(); 

stImagePath = "http://i.timeinc.net/subs2/images/gf/";
stEnv   = "";
stPgLoc = document.location.href;
if (stPgLoc.indexOf("file:///") !=-1) stEnv = "dev-" 
if (stPgLoc.indexOf("timeinc.net/subs2/dev/") !=-1) stEnv = "dev-"
if (stPgLoc.indexOf("timeinc.net/subs2/stage/") !=-1) stEnv = "stage-"

ofieBody = '<form name="'+gfredesign_rospartofieObj.getProp("sFormName")+'" id="'+gfredesign_rospartofieObj.getProp("sFormName")+'" method="post" action="https://'+stEnv+'subs.timeinc.net/CampaignHandler/gf_nb?source_id=4" class="subcrForm" onsubmit="return gfredesign_rospartofieObj.submitOfie(this,1024,700,\'c\',\'c\',\'scrollbars=yes,status=yes,resizable=yes\');" ><input type="hidden" name="subs_form_id" value="prod/js/gf/gfredesign_rospartofie.js" />'+
'    <div id="ofie"><img width="77" height="100" alt="Get Golf Magazine for Just $10! Subscribe Now &gt;&gt;" src="http://img.timeinc.net/golfonline/images/covers/email_cover.gif" class="subcrImg"/>'+
'      <p>Get Golf Magazine for Just $10! Subscribe Now &gt;</p>'+
'    </div>'+
'    <div class="subcrFormFields">'+
'      <ul>'+
'        <li>'+
'          <input type="text" style="border: 1px solid rgb(153, 153, 153); margin: 0pt; padding: 0pt; width: 110px; height: 14px; font-size: 10px; color: rgb(51, 51, 51); font-family: Arial,Helvetica,sans-serif;" value="Full Name" maxlength="30" name="name" tabindex="900"/>'+
'        </li>'+
'        <li>'+
'          <input type="text" value="Address" style="border: 1px solid rgb(153, 153, 153); margin: 0pt; padding: 0pt; width: 110px; height: 14px; font-size: 10px; color: rgb(51, 51, 51); font-family: Arial,Helvetica,sans-serif;" maxlength="30" name="address1" tabindex="901"/>'+
'        </li>'+
'        <li>'+
'          <input type="text" value="City" style="border: 1px solid rgb(153, 153, 153); margin: 0pt; padding: 0pt; width: 110px; height: 14px; font-size: 10px; color: rgb(51, 51, 51); font-family: Arial,Helvetica,sans-serif;" maxlength="20" name="city" tabindex="902"/>'+
'        </li>'+
'        <li>'+
'          <select tabindex="903" style="border: 1px solid rgb(153, 153, 153); padding: 0pt; width: 110px; height: 16px; font-size: 9px; color: rgb(51, 51, 51); font-family: Arial,Helvetica,sans-serif;" name="state"><option value="">'+gfredesign_rospartofieObj.getProp("formLabels")[gfredesign_rospartofieObj.getProp("fldName_state")][0]+'</option>' + gfredesign_rospartofieObj.getStateOptionList() +'</select>'+
'        </li>'+
'      </ul>'+
'      <ul>'+
'        <li>'+
'          <input type="text" value="Zip/Po" style="border: 1px solid rgb(153, 153, 153); margin: 0pt; padding: 0pt; width: 110px; height: 14px; font-size: 10px; color: rgb(51, 51, 51); font-family: Arial,Helvetica,sans-serif;" maxlength="6" name="zipCode" tabindex="904"/>'+
'        </li>'+
'        <li>'+
'          <input type="text" value="E-mail" style="border: 1px solid rgb(153, 153, 153); margin: 0pt; padding: 0pt; width: 110px; height: 14px; font-size: 10px; color: rgb(51, 51, 51); font-family: Arial,Helvetica,sans-serif;" maxlength="50" name="email" tabindex="905"/>'+
'        </li>'+
'        <li>'+
'          <input type="image" tabindex="906" alt="Submit" src="http://i.timeinc.net/subs2/images/gf/gf_pofieftr_ofe_btn_submit.gif" class="subcrSubmit"/>'+
'        </li>'+
'      </ul>'+
'    </div></form>';

gfredesign_rospartofieObj.setProp('sOfieHTML', ofieBody); 

if (gfredesign_rospartofieObj.getProp('bTCM_Dom')){
	document.write(gfredesign_rospartofieObj.getProp('sOfieHTML'));	
	//RUN
   if (window.addEventListener){
     window.addEventListener('load', gfredesign_rospartofieObj.ofie_init, false); 
   } else if (window.attachEvent){
     window.attachEvent('onload', gfredesign_rospartofieObj.ofie_init);
   }
}
