function IsNumeric(value)
{
	return (value - 0) == value && value.length > 0;
}

function TextAreaMaxLength(Object, MaxLen)
{
  var retval= (Object.value.length <= MaxLen);
  
  event.returnValue = retval;
}

function $$(id)
{
	return document.getElementById(id);
}

/*******************************************

	My Account Profile - add logo dialogue

*/
/*
window.addEvent('domready',function() {
//	/* hide using opacity on page load 
	if(document.getElementById('fb-modal'))
	document.getElementById('fb-modal').setStyles({
		opacity:0,
		display:'block'
	});
//	/* hiders 
	if(document.getElementById('fb-close'))
	document.getElementById('fb-close').addEvent('click',function(e) { if(document.getElementById('fb-modal'))document.getElementById('fb-modal').fade('out'); });
	window.addEvent('keypress',function(e) { if(e.key == 'esc') {  if(document.getElementById('fb-modal'))document.getElementById('fb-modal').fade('out'); } });
	document.getElementById(document.body).addEvent('click',function(e) { 
		if(document.getElementById('fb-modal'))
		if(document.getElementById('fb-modal').get('opacity') == 1 && !e.target.getParent('.generic_dialog')) { 
			document.getElementById('fb-modal').fade('out'); 
		} 
	});
//	/* click to show 
	if(document.getElementById('fb-trigger'))
	document.getElementById('fb-trigger').addEvent('click',function() {
		if(document.getElementById('fb-modal'))
		document.getElementById('fb-modal').fade('in');
	});

});
*/
/*******************************************

	Modify Project Complete Date Dialog

*/
function showPrjDate(duedate,referralId)
{
	var x = scrollCenter(true) - 150;
	var y = scrollCenter(false) - 90;
	document.getElementById('update_due_date').style.display= 'block';
	document.getElementById('update_due_date').style.top = y+'px';
	document.getElementById('update_due_date').style.left = x+'px';
	document.getElementById('due_date').value = duedate;
	document.getElementById('ref_id').value = referralId;
	document.getElementById('msg').style.display = 'none';
	document.getElementById('update_btn').style.display = '';
}

function hidePrjDate()
{
	document.getElementById('update_due_date').style.display = 'none';
}

function updatePrjDate()
{
	document.getElementById('update_btn').style.display = 'none';
	document.getElementById('msg').innerHTML = 'saving...';
	document.getElementById('msg').style.display = 'block';
	var ajaxurl = document.getElementById('action_url').value+'ajax/update_due_date/'+document.getElementById('ref_id').value+'/'+document.getElementById('due_date').value;


$.ajax({ url: ajaxurl, context: document.body, success: updatePrjDateSuccess, type:"POST"});

}

function updatePrjDateSuccess(responseText)
{
	response = responseText.split('---');
	document.getElementById('msg').innerHTML  = response[0];
	document.getElementById('msg').style.display = 'block';
	document.getElementById('ref'+document.getElementById('ref_id').value).innerHTML = response[1];
}

/*******************************************

	Send Referral Dialog

*/

function hideSendReferral(message)
{
	document.getElementById('send_referral').style.display = 'none';
	document.getElementById('provider_id').value = '';
}

function showSendReferral(profileId,company)
{
	var x = scrollCenter(true) - 200;
	var y = scrollCenter(false) - 150;
	document.getElementById('send_referral').style.top = y+"px";
	document.getElementById('send_referral').style.left = x+"px";
	document.getElementById('send_referral').style.display = 'block';
	document.getElementById('send_referral').style.zIndex = '9999';
	document.getElementById('send_referral').style.position = 'absolute';
	document.getElementById('provider_id').value = profileId;
	document.getElementById('send_btn').style.display = '';
	document.getElementById('sending').style.display = 'none';
	document.getElementById('notes').style.display = '';
	document.getElementById('notes').className = '';
	document.getElementById('notes').value = document.getElementById('defaultMsg').value;
	document.getElementById('by_email').value = '';
	document.getElementById('by_fname').value = '';
	document.getElementById('by_lname').value = '';
	document.getElementById('by_company').value = '';
	document.getElementById('by_phone').value = '';
	document.getElementById('refer_to').style.display = '';
	document.getElementById('refer_to').value = '';

	document.getElementById('comp_name').innerHTML = company;
	document.getElementById('comp_name3').innerHTML = company;
	document.getElementById('comp_name2').innerHTML = company;

	document.getElementById('refer-member-tab').onclick = referMemberClick;
	document.getElementById('refer-nonmember-tab').onclick = referNonMemberClick;
	// select the refer member panel to start
	referMemberClick(null);

	ajaxurl = document.getElementById('send_referral').action+'ajax/find_prj_referrer/'+profileId;
/*
	var ajaxurl = document.getElementById('send_referral').action+'ajax/find_users/'+profileId;

	// reset the autocomplete fields
	if(autocomplete)
	{
		autocomplete = null;
		var div = document.getElementById('refer-member').getElementsByTagName('div');
		// destroy the suggestion panels and company names
		div[0].parentNode.removeChild(div[0]);
	}

	autocomplete = new TextboxList('refer_to', {unique: true, plugins: {autocomplete: {}}});

	autocomplete.container.addClass('textboxlist-loading');				
	new Request.JSON({url: ajaxurl, onSuccess: function(r){
				autocomplete.plugins['autocomplete'].setValues(r);
				autocomplete.container.removeClass('textboxlist-loading');
				}}).send();
*/
}

function sendReferral(sendMsg)
{
	var requiredRegex = /[a-zA-Z0-9]+/;
	var emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;

	var referrerids = document.getElementById('send_referral').getElementsByTagName('input');
	var notes = document.getElementById('notes').value == document.getElementById('defaultMsg').value ? '' : document.getElementById('notes').value;
	var params = 'notes='+notes;

	// Refer a non member only
	if(document.getElementById('refer-nonmember-tab').className == 'active')
	{
		// do validation first
		if(!requiredRegex.test(document.getElementById('by_fname').value))
		{ alert('first name required'); return false; }

		if(!requiredRegex.test(document.getElementById('by_lname').value))
		{ alert('last name required'); return false; }

		if(!emailRegex.test(document.getElementById('by_email').value))
		{ alert('email not valid format'); return false; }


		if(!requiredRegex.test(document.getElementById('by_company').value))
		document.getElementById('by_company').value = document.getElementById('by_fname').value  + ' ' + document.getElementById('by_lname').value;

		var ph = requiredRegex.test(document.getElementById('by_phone').value) ?  document.getElementById('by_phone').value : 1;

		params += '&email='+document.getElementById('by_email').value;
		params += '&company='+document.getElementById('by_company').value;
		params += '&fname='+document.getElementById('by_fname').value;
		params += '&lname='+document.getElementById('by_lname').value;
		params += '&phone='+ph;
	}
	// Refer existing members
	else
	{
		params+='&refer_to='+document.getElementById('refer_to').value;
/*		for(var c=0; c<referrerids.length; c++)
		{
		if(referrerids[c].type == 'hidden' && referrerids[c].name=="refer_to")
			params+= '&refer_to[]='+referrerids[c].value;
		}
*/
	}
	document.getElementById('send_btn').style.display = 'none';
	document.getElementById('sending').style.display = 'block';
	document.getElementById('sending').innerHTML = sendMsg;

	var sendurl = document.getElementById('send_referral').action+'ajax/send_referral/'+document.getElementById('provider_id').value;


$.ajax({ url: sendurl, context: document.body, success: sendReferralSuccess, data:params, type:"POST"});
/*
    var myAjax = new Request({
         url:sendurl,
         method: 'post',
         //data: {'t':'t'},
         data: params,
         onComplete:sendReferralSuccess 
     });
  
     myAjax.send();
*/
	return true;
}

function sendReferralSuccess(responseText)
{
        document.getElementById('send_btn').style.display = 'none';
        document.getElementById('sending').style.display = 'block';
        document.getElementById('sending').innerHTML = responseText;
        document.getElementById('notes').style.display = 'none';
}

function referMemberClick(e)
{
	document.getElementById('refer-member').style.display = 'block';
	document.getElementById('refer-member-tab').className = 'active';
	document.getElementById('refer-nonmember').style.display = 'none';
	document.getElementById('refer-nonmember-tab').className = '';
}

function referNonMemberClick(e)
{
	document.getElementById('refer-nonmember').style.display = 'block';
	document.getElementById('refer-nonmember-tab').className = 'active';
	document.getElementById('refer-member').style.display = 'none';
	document.getElementById('refer-member-tab').className = '';
}

/*******************************************

	Misc. functions

*/
function scrollTop()
{
        var pos = document.body.scrollTop;

        if(pos == 0)
        {
                if(window.pageYOffset)
                        pos = window.pageYOffset;
                else
                        pos = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
        }
        return pos;
}

function scrollBottom()
{
	var pos = scrollTop();
	var delta = window.innerHeight;

	if(window.innerHeight)
	{
		pos += window.innerHeight;
	}
	else if(document.body.parentElement.clientHeight)
	{
		pos += document.body.parentElement.clientHeight;
	}
	return pos;
}

function scrollCenter(isHorizontal)
{
	if(isHorizontal)
	{
		if(window.innerWidth)
			return window.innerWidth/2;
		else if(document.body.parentElement.clientWidth)
			return document.body.parentElement.clientWidth/2;
		return 0;
	}

	return (scrollBottom() + scrollTop())/2;
}

function changeReferralType(field, labelId, msg, prjAmtId)
{
	if(field.checked)
		document.getElementById(labelId).innerHTML = msg;

	if(prjAmtId)
	{
		if(/%/.test(msg))
		document.getElementById(prjAmtId).style.display = '';
		else
		document.getElementById(prjAmtId).style.display = 'none';
	}
}

function validate_pay_referrer()
{
	if(document.getElementById('ref_percent').checked && !document.getElementById('project_amt_val').value)
	{
		alert(document.getElementById('default_text').value);
		return false;
	}

	var ref_fee = document.getElementById('referral_fee').value;
	if(document.getElementById('ref_percent').checked)
	{
		ref_fee = document.getElementById('project_amt_val').value*ref_fee/100;
	}
	
	return confirm(document.getElementById('msg1').value+ref_fee+document.getElementById('msg2').value);
}

/*******************************************

	User Registration Form

*/
function loadUserRegistrationForm()
{
/*
	var ajaxurl = document.getElementById('base_url').value+"ajax/find_referrer";
	var autocmpUser = new TextboxList('referral', {unique: true, plugins: {autocomplete: {}}});

	autocmpUser.container.addClass('textboxlist-loading');				
	new Request.JSON({url: ajaxurl, onSuccess: function(r){
			autocmpUser.plugins['autocomplete'].setValues(r);
			autocmpUser.container.removeClass('textboxlist-loading');
	}}).send();
*/
}

function toggleWhoReferred(field,msg)
{
	if(field.options[field.options.selectedIndex].value == msg)
	{
		document.getElementById('who-referred').style.display = 'block';
	}
		else document.getElementById('who-referred').style.display = 'none';
}

/*******************************************

	Activation Step 1

*/

function validateStep1()
{
	if(!document.getElementById('website').value)
	return confirm(document.getElementById('conf_web_msg').innerHTML);

	return true;
}

/*******************************************

	Registration

*/
function validateRegistration()
{

	if(!$$('opt1').checked && !$$('opt2').checked && !$$('opt3').checked)
	{
		alert('Please select a membership type');
		return false;
	}

	var reqRegex = /[a-z0-9]+/i;

	var reqFields = [{id:'company_name',txt:'Company Name is a required field'},
			{id:'city',txt:'City is a required field'},
			{id:'first_name',txt:'First name is a required field'},
			{id:'last_name',txt:'Last name is a required field'},
			{id:'phone',txt:'Phone is a required field'},
			{id:'email',txt:'Email is a required field'}
			];

	for(var i =0; i<reqFields.length; i++)

	if(!reqRegex.test($$(reqFields[i].id).value))
	{
		alert(reqFields[i].txt);
		return false;
	}

	if(!/@/.test($$('email').value))
	{
		alert('Email is not in correct format');
		return false;
	}
	if(!$$('source').selectedIndex)
	{
		alert('Please tell us how you heard about us');
		return false;
	}
	if(!$$('industry').selectedIndex)
	{
		alert('Industry is a required field');
		return false;
	}
	if(!$$('agreement').checked)
	{
		alert('You must agree to the terms');
		return false;
	}
	return true;
}

function validateReferFriend()
{
	var reqRegex = /[a-z0-9]+/i;

	var reqFields = [
			{id:'first_name',txt:'First name is a required field'},
			{id:'last_name',txt:'Last name is a required field'},
			{id:'email_add',txt:'Email is a required field'}
			];

	for(var i =0; i<reqFields.length; i++)

	if(!reqRegex.test($$(reqFields[i].id).value))
	{
		alert(reqFields[i].txt);
		return false;
	}

	return true;
}

