/*************************************************************
 * Personalizer
 * created by Michel Komarov (iCoder.com)
 *
 * Permanent link:
 * http://askmichel.icoder.com/2006/06/02/page-personalization/
 *
 * Got a question?
 * http://askmichel.icoder.com
 *
 * `i Code to help you profit`
 *  http://www.icoder.com
 *  
 * Edited by Larry Keenan - mymagicwebutilities.com
 * Added user field for Autoresponder Unlimited.
 * Added nickname field for Rapid Action Profits.
 * Added f , l and e fields for Infinite Responder.
 * Added category2 and category3 for getresponse.
 * Added affname to allow for affiliate name display
 * Shorten Document Domain to allow script to work accross
 * sub domains.    
 *   
 *************************************************************/
var ShortDom = document.domain.split('.');
if (ShortDom.length > "2"){
document.domain = ShortDom.splice(1,3).join('.');
}
function __personalize() {
	var cookieFields = document.cookie.split("; ");
	var nickname = __getPersonalizednickName(cookieFields);
	var firstName = __getPersonalizedFirstName(cookieFields);
	var lastName  = __getPersonalizedLastName(cookieFields);
	var fullName  = __getPersonalizedFullName(cookieFields);
	var email     = __getPersonalizedEmail(cookieFields);
	var affname   = __getPersonalizedAffname(cookieFields);
	if ("" == firstName) firstName = checkUrlParam("__fn","firstname");
	if ("" == lastName)  lastName  = checkUrlParam("__ln","lastname");
	if ("" == fullName)  fullName  = checkUrlParam("__n","fullname");
	if ("" == email)     email     = checkUrlParam("__e","email");
	if ("" == nickname)  nickname  = checkUrlParam("__r","nickname");
	if ("" == affname)  affname  = checkUrlParam("yn","affname");
	if ("" == fullName) {
	if ("" != firstName) fullName  = firstName + " " + lastName;
	} else {
		var names = fullName.split(" ");
		if ("" == firstName) firstName = names[0];
		if (("" == lastName) && (names.length > 1)) lastName = names[1];
	}
	if ("" != firstName) __personalizeFirstName(firstName);
	if ("" != lastName)  __personalizeLastName(lastName);
	if ("" != fullName)  __personalizeFullName(fullName);
	if ("" != email)     __personalizeEmail(email);
  if ("" != nickname)  __personalizenickName(nickName);
  if ("" != affname)  __personalizeaffname(affname);
  
	for (var i = 0; document.forms.length > i; ++i) {
		if ("function" == typeof(document.forms[i].onsubmit))
			document.forms[i].__onsubmit = document.forms[i].onsubmit;
		document.forms[i].onsubmit = __personalizeCheckForm;
	}
}
function __personalizeCheckForm(event) {
	var d = new Date();
	d.setMonth(d.getMonth() + 11);
	var fieldNames = "|first_name|first_Name|firstname|firstName|f|"
		+ "|last_name|last_Name|lastname|lastName|l|"
		+ "|full_name|full_Name|fullname|fullName|name|Name|user|category2|"
		+ "|email|Email|from|From|nickname|NICKNAME|e|category3|affname|AFFNAME";
	var items = this.elements;
	for (var i = 0; items.length > i; ++i) {
		if (("INPUT" == items[i].tagName)
		&&  ("text" == items[i].type)
		&&  (-1 != fieldNames.indexOf("|"+items[i].name+"|"))) {
			document.cookie = "__personalize_" +items[i].name
				+ "=" + escape(items[i].value)
				+ "; expires="+d.toGMTString()+"; path=/;domain="+document.domain+";";
		}
	}
	if ("function" == typeof(this.__onsubmit))
		return this.__onsubmit(event);
	return true;
}

function __personalizeFirstName(fieldValue) {
	__personalizeField("first_name", fieldValue);
	__personalizeField("first_Name", fieldValue);
	__personalizeField("firstname",  fieldValue);
	__personalizeField("firstName",  fieldValue);
	__personalizeField("f",  fieldValue);	
}
function __personalizenickName(fieldValue) {
	__personalizeField("nickname", fieldValue);
	__personalizeField("NICKNAME", fieldValue);
}

function __personalizeLastName(fieldValue) {
	__personalizeField("last_name", fieldValue);
	__personalizeField("last_Name", fieldValue);
	__personalizeField("lastname",  fieldValue);
	__personalizeField("lastName",  fieldValue);
	__personalizeField("l",  fieldValue);	
}
function __personalizeFullName(fieldValue) {
	__personalizeField("full_name", fieldValue);
	__personalizeField("full_Name", fieldValue);
	__personalizeField("fullname",  fieldValue);
	__personalizeField("fullName",  fieldValue);
	__personalizeField("name",      fieldValue);
	__personalizeField("Name",      fieldValue);
	__personalizeField("user",      fieldValue);
	__personalizeField("category2",      fieldValue);  	
}
function __personalizeEmail(fieldValue) {
	__personalizeField("email", fieldValue);
	__personalizeField("Email", fieldValue);
	__personalizeField("from",  fieldValue);
	__personalizeField("From",  fieldValue);
	__personalizeField("e",  fieldValue);
	__personalizeField("category3",  fieldValue);
  	
}
function __personalizeaffname(fieldValue) {
	__personalizeField("affname", fieldValue);
	__personalizeField("AFFNAME", fieldValue);
}

function __personalizeField(fieldName, fieldValue) {
	var fieldObjects = document.getElementsByName(fieldName);
	for(var i = 0; fieldObjects.length > i; ++i) {
		switch (fieldObjects[i].tagName) {
			case "A":
			case "DIV":
			case "SPAN":
				fieldObjects[i].innerHTML = fieldValue;
				break;
			case "INPUT":
				if ("" == fieldObjects[i].value)
					fieldObjects[i].value = fieldValue;
				break;
		}
	}
}

function __getPersonalizedFirstName(cookieFields) {
	var fieldNames = "|first_name|first_Name|firstname|firstName|f|";
	return __getPersonalizedField(fieldNames, cookieFields);
}
function __getPersonalizednickName(cookieFields) {
	var fieldNames = "|nickname|NICKNAME|";
	return __getPersonalizedField(fieldNames, cookieFields);
}
function __getPersonalizedLastName(cookieFields) {
	var fieldNames = "|last_name|last_Name|lastname|lastName|l|";
	return __getPersonalizedField(fieldNames, cookieFields);
}
function __getPersonalizedFullName(cookieFields) {
var fieldNames = "|full_name|full_Name|fullname|fullName|name|Name|user|category2|";
	return __getPersonalizedField(fieldNames, cookieFields);
}
function __getPersonalizedEmail(cookieFields) {
	var fieldNames = "|email|Email|from|From|e|";
	return __getPersonalizedField(fieldNames, cookieFields);
}
function __getPersonalizedEmail(cookieFields) {
	var fieldNames = "|email|Email|from|From|e|category3";
	return __getPersonalizedField(fieldNames, cookieFields);
}
function __getPersonalizedAffname(cookieFields) {
	var fieldNames = "|affname|AFFNAME|";
	return __getPersonalizedField(fieldNames, cookieFields);
}

function __getPersonalizedField(fieldNames, cookieFields) {
	for (var i = 0; cookieFields.length > i; ++i) {
		var pair = cookieFields[i].split("=");
		if ((0 == pair[0].indexOf("__personalize_"))
		&& (-1 != fieldNames.indexOf("|"+pair[0].substr(14)+"|"))) {
			return unescape(cookieFields[i].substr(pair[0].length + 1));
		}
	}
	return "";
}
function checkUrlParam(urlParam, cookieName) {
	var value = "";
	if (document.location.search.length > 1) {
		var p = document.location.search.substr(1);
		var pFields = p.split("&");
		for(var i in pFields) {
			if (0 == pFields[i].indexOf(urlParam+"=")) {
				value = unescape(pFields[i].substr((urlParam+"=").length));
				var d = new Date();
				d.setMonth(d.getMonth() + 24);
				document.cookie = "__personalize_" +cookieName
				+ "=" + escape(value)
				+ "; expires="+d.toGMTString()+"; path=/;domain="+document.domain+";";
				break;
			}
		}
	}
	return value;
}
__personalize();

