// SET UP HOTKEYS ARRAY

var admix01 = new Image();
var admix02 = new Image();

admix01.src = '/images/icons/collapse.png';
admix02.src = '/images/icons/expand.png';

String.prototype.trim = function()
{
	return this.replace(/^\s+|\s+$/g,"");
}

String.prototype.ltrim = function()
{
	return this.replace(/^\s+/,"");
}

String.prototype.rtrim = function()
{
	return this.replace(/\s+$/,"");
}

function bbSendPassword()
{
	var passbox = document.getElementById('bb_sendpass_box').value;
	
	var xml = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
	xml.open('POST', '/framework/functions_ajax.asp', true);
	xml.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xml.onreadystatechange = function()
	{
		if (xml.readyState == 4)
		{
			ccToggleInfo('bb_sendpassword');
			document.getElementById('bb_sendpass_box').value = '';
			alert(xml.responseText);
		}
	}
	xml.send('action=sendpass&email=' + escape(passbox));
}

function ccFrontColorBG(t_item, which)
{
	var p1 = document.getElementById('nphome_' + t_item + '_a');
	var p2 = document.getElementById('nphome_' + t_item + '_b');
	
	if (p1)
	{
		switch(which.toLowerCase())
		{
			case 'on':
				p1.style.backgroundColor = '#265978';
				p2.style.backgroundColor = '#265978';
				document.getElementById('nphome_' + t_item + '_title').style.color = '#ffffff';
				document.getElementById('nphome_' + t_item + '_subtitle').style.color = '#ffffff';
				break;
			case 'off':
				p1.style.backgroundColor = '';
				p2.style.backgroundColor = '';
				document.getElementById('nphome_' + t_item + '_title').style.color = '#265978';
				document.getElementById('nphome_' + t_item + '_subtitle').style.color = '#666666';
				break;
		}
	}
}

function ccToggleButton(t_item, which)
{
	var myitem = document.getElementById(t_item);
	var sourceb = myitem.src;
	var pos = sourceb.lastIndexOf('/');
	var sourcei = sourceb.substr(pos+1);
	var per = sourcei.lastIndexOf('.');
	
	sourceb = sourceb.substr(0, pos + 1);
	if (myitem)
	{
		switch(which.toLowerCase())
		{
			case 'on':
				myitem.src = sourceb + sourcei.substr(0, per) + '_on' + sourcei.substr(per);
				break;
			case 'off':
				myitem.src = sourceb + sourcei.substr(0, per - 3) + sourcei.substr(per);
				break;
		}
	}
}

function ccDoWordCount(object, id)
{
	var to = (object.value ? object.value : object.innerHTML);
	var text = to.replace(/  /g, ' ');
	while (text.indexOf('  ') >= 0)
		text = text.replace(/  /g, ' ');
	
	var a = text.trim().split(' ');
	var l = text.trim() != '' ? a.length : 0;
	if (!id) id = '';
	document.getElementById('cc_updatewordcount' + id).innerHTML = l;
}

function ccBGTableColor(newcolor, tableid)
{
	/*
	var tags = document.getElementsByTagName('TABLE');
	
	for (var x = 0; x < tags.length; x++)
	{
		if (tags[x].id == 'cc_main_table_top' || tags[x].id == 'cc_main_table_bottom')
			tags[x].style.backgroundColor = newcolor;
	}
	*/
	if (document.getElementById(tableid))
		document.getElementById(tableid).style.backgroundColor = newcolor;
}

function ccGeneratePassword(length)
{
	var i;
	var c;
	var bMadeConsonant;
	var nRnd;
	var sDblConsonants = 'bdfglmnpst';
	var sConsonants = 'bcdfghklmnpqrstv';
	var sVowels = 'aeiou';
	var retval = '';
	
	bMadeConsonant = false;
	
	for (i=0; i<length; i++)
	{
		nRnd = Math.random();
		
		if (retval != '' && bMadeConsonant == false && nRnd < 0.15)
		{
			c = sDblConsonants.substr(sDblConsonants.length * nRnd, 1);
			c += c;
			i++;
			bMadeConsonant = true;
		}
		else
		{
			if (bMadeConsonant == false && nRnd < 0.95)
			{
				c = sConsonants.substr(sConsonants.length * nRnd, 1);
				bMadeConsonant = true;
			}
			else
			{
				c = sVowels.substr(sVowels.length * nRnd, 1);
				bMadeConsonant = false;
			}
		}
		
		retval += c;
	}
	
	if (retval.length > length)
		retval = retval.substr(0, length);
	
	return retval
}

function mmToggleInfo(name, menuname)
{
	var backbtn = document.getElementById('menu_back_button');
	var titlebar = document.getElementById('menu_titlebar');
	var toplevel = document.getElementById('menu_top_level');
	
	if (name)
	{
		toplevel.style.display = 'none';
		backbtn.style.display = 'block';
		titlebar.innerHTML = menuname + ' Menu';
		var elem = document.getElementById(name);
		
		if (elem.style.display == 'none')
		{
			elem.style.display = 'block';
		}
		else
		{
			elem.style.display = 'none';
		}
	}
	else
	{
		toplevel.style.display = 'block';
		backbtn.style.display = 'none';
		titlebar.innerHTML = 'Main Menu';
		for (var i=0;i<arMenuIDs.length;i++)
		{
			document.getElementById('m_item_' + arMenuIDs[i]).style.display = 'none';
		}
		
	}
	
}

function ToggleMenu(itemID) {
	var menudiv = 'm_item' + itemID;
	if (document.getElementById(menudiv).style.display == 'none') {
		document.getElementById(menudiv).style.display = 'block';
	}
	else {
		document.getElementById(menudiv).style.display = 'none';
	}
}

function ccNumbersOnly(myfield, e, xtra)
{
	var key;
	var keychar;
	var charlist = "0123456789";
	
	if (xtra)
		charlist += xtra;
	
	if (window.event)
		key = window.event.keyCode;
	else if (e)
		key = e.which;
	else

	return true;
	keychar = String.fromCharCode(key);
	
	// control keys
	if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) )
	return true;
	// numbers
	else if (((charlist).indexOf(keychar) > -1))
		return true;
	else
		return false;
}

function ccReportBug()
{
	var xml = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
	var notes = document.getElementById('usernotes').value;
	
	xml.open('POST', '/_ajax.asp', true);
	xml.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xml.onreadystatechange = function()
	{
		if (xml.readyState == 4)
		{
			if (xml.responseText || xml.responseText != '')
				alert(xml.responseText);
			else
			{
				ccToggleInfo('fm_bugtext');
				document.getElementById('usernotes').value = '';
				alert('Your bug has been reported!');
			}
		}
	}
	xml.send('action=bugreport&notes=' + escape(notes));
}

function ccToggleInfo(name, useimage)
{
	var elem = document.getElementById(name);
	var img = document.getElementById(name + '_image');
	
	if (elem.style.display == 'none')
	{
		elem.style.display = 'block';
		if (useimage) img.src = '/images/icons/collapse.png'
	}
	else
	{
		elem.style.display = 'none';
		if (useimage) img.src = '/images/icons/expand.png'
	}
}

function ccCardCheck(cardtype, digits)
{
	var num = Number(digits);
	switch(cardtype.toUpperCase())
	{
		case 'VS':
			if (num >= 4000 && num <= 4999) return true;
			break;
		case 'MC':
			if (num >= 5100 && num <= 5599) return true;
			break;
		case 'AX':
			if ((num >= 3400 && num <= 3499) || (num <= 3700 && num >= 3799)) return true;
			break;
		case 'DI':
			if (num == 6011) return true;
			break;
	}
	
	return false;
}

function ccMod10(ccnum)
{
	if (ccnum.trim() == '')
		return false;
	
	ccnum = ccnum.replace(/[ -]/g, '');
	var nLength = ccnum.length;
	var nCheck = Number(ccnum.substr(ccnum.length - 1));
	var nMultiplier = 1;
	var nTotal = 0;
	var nTmp;
	var nNew;
	var sTmp;
	var i;
	
	for (i=nLength-2; i>=0; i--)
	{
		if (nMultiplier == 1)
			nMultiplier = 2;
		else
			nMultiplier = 1;
		
		nTmp = Number(ccnum.substr(i, 1)) * nMultiplier;
		
		if (nTmp > 9)
			nTotal += Number(nTmp.toString().substr(0, 1)) + Number(nTmp.toString().substr(1, 1));
		else
			nTotal += Number(nTmp);
	}
	
	nNew = nTotal;
	while (1)
	{
		sTmp = String(nNew);
		nLength = sTmp.length;
		if (sTmp.substr(nLength - 1, 1) == 0)
			break;
		else
			nNew++;
	}
	
	if ((nNew - nTotal) == nCheck)
		return true;
	else
		return false;
}

function ccGetFormattedDateTime(thedate)
{
	return ccGetFormattedDate(thedate) + ' ' + ccGetFormattedTime(thedate);
}

function ccGetFormattedDate(thedate)
{
	var date = thedate ? new Date(thedate) : new Date();
	return ((date.getMonth() + 1) + '/' + (date.getDate()) + '/' + date.getYear());
}

function ccGetFormattedTime(thedate)
{
	var date = thedate ? new Date(thedate) : new Date();
	var hours = date.getHours();
	var ampm = (hours > 11) ? 'PM' : 'AM';
	var minutes = date.getMinutes().toString();
	
	//hours++;
	hours = (hours > 12) ? hours - 12 : (hours == 0) ? 12 : hours;
	minutes = minutes.length == 1 ? '0' + minutes : minutes;
	
	return (hours + ':' + minutes + ' ' + ampm);
}

function ccFormatCurrency(number)
{
	var tmp = String(number).replace('$', '').replace(',', '').trim();
	if (tmp != '')
	{
		var each = tmp.split('.');
		var final = '';
		var k = 0;
		
		for (var i = (each[0].length - 1); i >= 0 ; i--)
		{
			if (k > 2)
			{
				final = ',' + final;
				k = 0;
			}
			
			final = each[0].charAt(i) + final;
			k++;
		}
		
		if (final.charAt(0) == ',') 
			final = final.substr(1);
		
		if (each.length > 1)
			final += '.' + (each[1] + '00').substr(0, 2);
		else
			final += '.00';
		
		return '$' + final;
	}
	else
		return '$0.00';
}

function ccQueryString(lookfor, def)
{
	if (!def) def = '';
	
	var q = location.search.substr(1);
	
	if (q.length == 0)
		return null;
	
	q.replace(/\+/g, ' ');
	var items = q.split('&');
	for (var i=0;i<items.length;i++)
	{
		var data = items[i].split('=');
		var name = unescape(data[0]);
		var value = (data.length > 1) ? unescape(data[1]) : '';
		if (name == lookfor) 
			return value == '' ? def : value ;
	}
	
	return def;
}

function ccConnect(script, qstring, callback, async, xparam)
{
	var s = async==false?false:true;
	var xml = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
	xml.open('POST', script, s);
	xml.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	if (s && callback)
	{
		xml.onreadystatechange = function()
		{
			if (xml.readyState == 4)
			{
				callback(xml.responseText, xparam);
			}
		}
	}
	xml.send(qstring);
	if (!s)
		return xml.responseText;
}

function ccIsValidEmail(src)
{
	var emailReg = '^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$';
	var regex = new RegExp(emailReg);
	return regex.test(src);
}

/**
*
* AJAX IFRAME METHOD (AIM)
* http://www.webtoolkit.info/
*
**/

AIM = {

    frame : function(c) {

        var n = 'f' + Math.floor(Math.random() * 99999);
        var d = document.createElement('DIV');
        d.innerHTML = '<iframe style="display:none" src="about:blank" id="'+n+'" name="'+n+'" onload="AIM.loaded(\''+n+'\')"></iframe>';
        document.body.appendChild(d);

        var i = document.getElementById(n);
        if (c && typeof(c.onComplete) == 'function') {
            i.onComplete = c.onComplete;
        }

        return n;
    },

    form : function(f, name) {
        f.setAttribute('target', name);
    },

    submit : function(f, c) {
        AIM.form(f, AIM.frame(c));
        if (c && typeof(c.onStart) == 'function') {
            return c.onStart();
        } else {
            return true;
        }
    },

    loaded : function(id) {
        var i = document.getElementById(id);
        if (i.contentDocument) {
            var d = i.contentDocument;
        } else if (i.contentWindow) {
            var d = i.contentWindow.document;
        } else {
            var d = window.frames[id].document;
        }
        if (d.location.href == "about:blank") {
            return;
        }

        if (typeof(i.onComplete) == 'function') {
            i.onComplete(d.body.innerHTML);
        }
    }

}

