// SET UP HOTKEYS ARRAY

var isUploading = false;
var g_RunOnClose = null;
var g_OriginalResize = null;
var g_OriginalScroll = null;
var g_OriginalOnClick = null;
var g_SettingPopup = false;

var admix01 = new Image();
var admix02 = new Image();

admix01.src = '/images/icons/collapse.png';
admix02.src = '/images/icons/expand.png';

window.addEvent("scroll", function() {
	if ($('rightmenublock'))
	{
		var x = window.getScroll();
		if (Number(x.y) >= 133)
		{
			$('rightmenublock').className = 'right-menu-stick';
		}
		else
		{
			$('rightmenublock').className = 'right-menu';
		}
	}
});

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 bbToggleButton(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 - 2) + 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 ccToggleInfoSB(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/template/sidebar/expanded.png'
	}
	else
	{
		elem.style.display = 'none';
		if (useimage) img.src = '/images/template/sidebar/collapsed.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);
        }
    }

}

function ccShowModalWindow(title, data, width, runonclose, sysmodal, uniqueid) {

	g_RunOnClose = runonclose;
	var w = width?width:400;
	
	html = ' \
		<table cellpadding="0" cellspacing="0" border="0" width="'+w+'" class="modal_style"> \
			<tr> \
				<td style="background-image:url(/images/modal/modal_topleft.png); background-repeat:no-repeat; vertical-align:bottom;" width="6" height="37"></td> \
				<td style="background-image:url(/images/modal/modal_topmiddle.png); background-repeat:repeat-x; vertical-align:bottom;" height="37"><div style=" padding-top:5px; float:left; vertical-align:middle;">'+title+'</div><div style="float:right; padding-bottom:8px;"><a href="javascript:ccHideModalWindow('+(uniqueid?'\''+uniqueid+'\'':'')+');"><img src="/images/modal/modal_close.png" alt="modal_close" align="right" border="0" align="absmiddle" /></a></div><div style="clear:both;"></div></td> \
				<td style="background-image:url(/images/modal/modal_topright.png); background-repeat:no-repeat; vertical-align:bottom;" width="8" height="37"></td> \
			</tr> \
			<tr> \
				<td style="background-image:url(/images/modal/modal_left.png); background-repeat:repeat-y; vertical-align:bottom;" ></td> \
				<td style="background-image:url(/images/modal/modal_middle.png); background-repeat:repeat; vertical-align:bottom;" >'+data+'</td> \
				<td style="background-image:url(/images/modal/modal_right.png); background-repeat:repeat-y; vertical-align:bottom;" ></td> \
			</tr> \
			<tr> \
				<td style="background-image:url(/images/modal/modal_bottomleft.png); background-repeat:no-repeat; vertical-align:top;" width="6" height="27"></td> \
				<td style="background-image:url(/images/modal/modal_bottommiddle.png); background-repeat:repeat-x; vertical-align:top;" height="27"></td> \
				<td style="background-image:url(/images/modal/modal_bottomright.png); background-repeat:no-repeat; vertical-align:top;" width="6" height="27"></td> \
			</tr> \
		</table>';

	makeOverlay(sysmodal, uniqueid);

	makeModalBox.pass([width, html, uniqueid]).delay(250);

}

function makeModalBox(mwidth, mtext, uniqueid) {
	
	var size = window.getSize();
	var newid = uniqueid?'_'+uniqueid:'';
	var idx = uniqueid?1999:999;

	var scroll = window.getScroll();

	var xcenter = (size.x / 2) + scroll.x;
	var ycenter = (size.y / 2) + scroll.y;
	
	var modalBox = new Element('div', {
	    'id': 'modalBox'+newid,
	    'html': mtext,
	    'styles': {
	        'display': 'block',
	        'position': 'absolute',
	        'z-index': idx,
	        'width': mwidth,
	        'opacity': '0'
	    }
	});

	modalBox.inject(document.body);
	
	var elsize = $('modalBox'+newid).getSize();

	var putleft = xcenter - (elsize.x / 2);
	var puttop = ycenter - (elsize.y / 2);
	
	$('modalBox'+newid).setStyle('top',puttop);
	$('modalBox'+newid).setStyle('left',putleft);
	
	$('modalBox'+newid).set('tween', {duration: '250'});
	$('modalBox'+newid).tween('opacity', '1');
	
}

function makeOverlay(sysmodal, uniqueid){

	var size = window.getScrollSize();
	var newid = uniqueid?'_'+uniqueid:'';
	var idx = uniqueid?1900:900;
	var overlay = new Element('div', {
	    'id': 'overlay'+newid,
	    'html': '',
	    'styles': {
	        'display': 'block',
	        'position': 'absolute',
	        'z-index': idx,
	        'background': 'black',
	        'height': size.y,
	        'width': size.x,
	        'top': '0',
	        'left': '0',
	        'opacity': '0'
	    }
	});

	overlay.inject(document.body);
	
	$('overlay'+newid).set('tween', {duration: '250'});
	$('overlay'+newid).tween('opacity', '0.5');

	if (!sysmodal) $('overlay'+newid).addEvent('click', function(){ccHideModalWindow(uniqueid);});

	//$$('embed').setStyle('visibility', 'hidden');

}

function ccHideModalWindow(uniqueid) {
	var newid = uniqueid?'_'+uniqueid:'';

	if (!isUploading)
	{
		if (g_RunOnClose && g_RunOnClose != '')
		{
			eval(g_RunOnClose);
		}
		
		g_RunOnClose = null;
		
		if ($('overlay'+newid)) $('overlay'+newid).fade('out');
		disposeOverlay.pass([null, uniqueid]).delay(500);
		if ($('modalBox'+newid)) $('modalBox'+newid).fade('out');
		disposeBox.pass([null, uniqueid]).delay(500);

		//$$('embed').setStyle('visibility', 'visible');

	}
}

function disposeOverlay(el_overlay, uniqueid) {
	var newid = uniqueid?'_'+uniqueid:'';

	if ($('overlay'+newid)) $('overlay'+newid).dispose();
}

function disposeBox(el_modalbox, uniqueid) {
	var newid = uniqueid?'_'+uniqueid:'';

	if ($('modalBox'+newid)) $('modalBox'+newid).dispose();
}

// WAIT BOX

function ccShowWaitWindow(title)
{
	var html = new String();
	
	if (!title) title = 'Processing';

	html = '<p>' + title + '</p><img src="/images/processing.gif" border="0" alt="" title="" /><p>Please wait...</p>';
	
	//make overlay
	var size = window.getScrollSize();

	var woverlay = new Element('div', {
	    'id': 'woverlay',
	    'html': '',
	    'styles': {
	        'display': 'block',
	        'position': 'absolute',
	        'z-index': '5000',
	        'background': 'black',
	        'height': size.y,
	        'width': size.x,
	        'top': '0',
	        'left': '0',
	        'opacity': '0'
	    }
	});

	woverlay.inject(document.body);
	
	$('woverlay').tween('opacity', '0.5');


	//$$('embed').setStyle('visibility', 'hidden');
	
	//make object
	var size = window.getSize();

	var scroll = window.getScroll();

	var xcenter = (size.x / 2) + scroll.x;
	var ycenter = (size.y / 2) + scroll.y;
	
	var wmodalBox = new Element('div', {
	    'id': 'wmodalBox',
	    'html': html,
	    'styles': {
	        'display': 'block',
	        'position': 'absolute',
	        'z-index': '6000',
	        'width': '400',
	        'opacity': '0',
	        'color': 'white',
	        'font-weight': 'bold',
	        'font-size': '16pt',
	        'text-align': 'center'
	    }
	});

	wmodalBox.inject(document.body);
	
	var elsize = $('wmodalBox').getSize();

	var putleft = xcenter - (elsize.x / 2);
	var puttop = ycenter - (elsize.y / 2);
	
	$('wmodalBox').setStyle('top',puttop);
	$('wmodalBox').setStyle('left',putleft);
	
	$('wmodalBox').tween('opacity', '1');
}

function ccHideWaitWindow()
{
		$('woverlay').fade('out');
		disposeWOverlay.delay(500);
		$('wmodalBox').fade('out');
		disposeWBox.delay(500);

		$$('embed').setStyle('visibility', 'visible');
}

function disposeWOverlay() {
	$('woverlay').dispose();
}

function disposeWBox() {
	$('wmodalBox').dispose();
}

function ccPostQuickCallback(data)
{
	ccShowModalWindow('Quick Callback', data, 500);
}

function ccQuickCallback()
{
	ccConnect('/_framework/functions_ajax.asp', 'action=qcbform', ccPostQuickCallback);
}

function qcSubmitForm()
{
	var name = $('qc_name').value.trim();
	var email = $('qc_email').value.trim();
	var phone = $('qc_phone').value.trim();
	var aboutx = $('qc_about');
	var about = aboutx.options[aboutx.selectedIndex].value;
	var whenx = $('qc_time');
	var when = whenx.options[whenx.selectedIndex].value;
	
	if (name == '')
	{
		alert('Please provide your name.');
		return;
	}
	
	if (email == '')
	{
		alert('Please provide your e-mail address.');
		return;
	}
	
	if (phone == '')
	{
		alert('Please provide your phone number.');
		return;
	}
	
	if (about == '')
	{
		alert('Please tell us what your inquiry is about.');
		return;
	}
	
	if (when == '')
	{
		alert('Please let us know when is a good time to contact you.');
		return;
	}
	
	ccConnect('/_framework/functions_ajax.asp', 'action=sendqc&name='+escape(name)+'&email='+escape(email)+'&phone='+escape(phone)+'&about='+escape(about)+'&when='+escape(when), qcPostSubmitForm);
}

function qcPostSubmitForm(data)
{
	if (data == '')
	{
		ccHideModalWindow();
		alert('Thank you! Your message has been sent.');
	}
	else
		alert('Oops! An error occured. Please try again later.');
}

function ccPostShowAlert(data, title)
{
	ccShowModalWindow(title, data, 400, null, true, 'sys_alert');
}

function ccShowAlert(atype, title, message)
{
	// atype = info || error
	ccConnect('/_framework/functions_ajax.asp', 'action=showalert&type='+escape(atype)+'&message='+escape(message), ccPostShowAlert, true, title);
}

