﻿/*
 * Copyright (c) CleverLeaf, Inc.
 * All Rights Reserved.
 *
 * This is UNPUBLISHED PROPRIETARY SOURCE CODE of CleverLeaf, Inc.;
 * the contents of this file may not be disclosed to third parties, copied or
 * duplicated in any form, in whole or in part, without the prior written
 * permission of CleverLeaf, Inc.
 *
 * RESTRICTED RIGHTS LEGEND:
 * Use, duplication or disclosure by the Government is subject to restrictions
 * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
 * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
 * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
 * rights reserved under the Copyright Laws of the United States.
 */

String.prototype.reverse = function() {
	var result = ""
	for (i = this.length; --i >= 0; )
		result += this.charAt(i)
	return (result)
}

String.prototype.decoder = function() {
	var result = ""
	var xdigit = "0123456789abcdef"
	var string = this.reverse()
	if (/^[0-9a-f]+$/.test(string) && ! (string.length&1)) {
		var i = 0
		do {
			var hi = xdigit.indexOf(string.charAt(i++))
			var lo = xdigit.indexOf(string.charAt(i++))
			result += String.fromCharCode(hi << 4 | lo)
		} while (i < string.length)
		return (result)
	}
	return (null)
}

String.prototype.mailto = function(text) {
	var result = this.decoder()
	return (result ? (text || result).link('mailto:' + result) : null)
}
