// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
	    var c = ca[i];
	    while (c.charAt(0)==' ') c = c.substring(1,c.length);
	    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function handle_cached_user() {
	var login_cookie = readCookie('logged_in');
	var logged_in = $('cookie_logged_in');
	var logged_out = $('cookie_logged_out');
	var logged_out_menu = $('logged_out_menu')
	var logged_in_menu = $('logged_in_menu')
	if (login_cookie == null) {
	  logged_in.style.display = 'none';
	  logged_out.style.display = 'block';
	  logged_in_menu.style.display = 'none'
	  logged_out_menu.style.display = 'block';

	} 
	else {
	  logged_out.style.display = 'none';
	  logged_in.style.display = 'block';
		logged_in_menu.style.display = 'block'
	  logged_out_menu.style.display = 'none';
	  $('cookie_user_full_name').innerHTML = login_cookie.gsub(/\+/, '&nbsp;');
	  //menu
	  if (readCookie('manage_apps')) {
	    $('manage_apps_icon').style.display = 'inline';
    }
    if (readCookie('manage_accounts')) {
      $('manage_accounts_icon').style.display = 'inline';
    }
    if (readCookie('manage_subscriptions')) {
      $('manage_subscriptions_icon').style.display = 'inline';
    }
    if (readCookie('manage_billing')) {
      $('manage_billing_icon').style.display = 'inline';    	
    }	
    if (readCookie('morph_admin')) {
      $('morph_administer_user').style.display = 'inline';    	
    }   
	}
}

function helpme_signup_button() {
	var login_cookie = readCookie('logged_in');
	if (login_cookie == null) {
		$('helpme_signup_allowed').style.display = 'none';
		$('helpme_signup_not_allowed').style.display = 'none';
		$('helpme_signup_not_logged_in').style.display = 'inline';
	}
	else {
		$('helpme_signup_not_logged_in').style.display = 'none';
		if (readCookie('manage_subscriptions')) {
			$('helpme_signup_not_allowed').style.display = 'none';
			$('helpme_signup_allowed').style.display = 'inline';			
		}
		else {
			$('helpme_signup_allowed').style.display = 'none';
			$('helpme_signup_not_allowed').style.display = 'inline';
		}
	}
	
}

function preview_invite() {
  $('invite_message').innerHTML = ''
  if ($('invite_email_preview').style.display == 'none')
  {
     $('invite_email_preview').style.display = 'block';
  }
   
  $('invite_message').innerHTML = $('message').value
	
}

function purchase_credits() {
	base_price  = parseFloat($('credits_base_price_value').innerHTML);
	raw_credits = $('credits_field').value.replace(/,/g, '')
	credits		  = parseInt(raw_credits,10);
	$('promo_code_values').innerHTML = ''
	if (isNaN(raw_credits))
	{
	   $('checkout_button').disabled = true;
	}
	else
	{
	  if (credits) 
	  {
	    if (credits < 0 || credits > 10000)
	    {
		  $('checkout_button').disabled = true;
	    }
	    else
	    {
	      $('credits_number').innerHTML = format_to_thousands(raw_credits);
	      $('credits_valued_price').innerHTML = 'That will cost you: ' + $('currency_symbol').innerHTML + ' ' + format_currency(credits*base_price);
	      $('checkout_button').disabled = false;
	    }
	  }
	  else
	  {
	  	$('credits_number').innerHTML = '0';
		$('credits_valued_price').innerHTML = '';
		$('checkout_button').disabled = true;
	  }
	}
}

function format_currency(num) {
 num = num.toString().replace(/\$|\,/g,'');
 if(isNaN(num)) {
   num = "0";
 }
 sign = (num == (num = Math.abs(num)));
 num = Math.floor(num*100+0.50000000001);
 cents = num%100;
 num = Math.floor(num/100).toString();
 if(cents<10) {
   cents = "0" + cents;
 }
 for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) {
   num = num.substring(0,num.length-(4*i+3)) + ',' + num.substring(num.length-(4*i+3));
 }
 //alert('finalnum=' + num)
 return (((sign)?'':'-') +  num + '.' + cents);
}

function format_to_thousands(num)
{
 // expecting no decimals..
 num = num.replace(/^0|,/g, '');
 for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) {
   num = num.substring(0,num.length-(4*i+3)) + ',' + num.substring(num.length-(4*i+3));
 }
 // no sign
 return num;
}

function check_credits_values() {
	credits 			= parseInt($('credits_field').value)
	coupon_code		= $('coupon_code').value
	if (!credits && !coupon_code) {
		alert('You must specify number of Morph Credits to purchase');
		return false;
	}
	if(coupon_code && $('promo_code_values').innerHTML == '') {
		alert('You must check the Promo Coupon code availability first.');
		return false;
	}
	return true;
}

function valid_email(value) {
	if (value.length != 0)
	{
	  var regex = /(^([^@\s]+)@((?:[-_a-z0-9]+\.)+[a-z]{2,})$)|(^$)/i
	  return regex.test(value)
	}
	else
	{
		return false;
	}
}

function valid_multiple_email(value) {
	return_value = true;
	if (value.length != 0)
	{
	   var email_array = value.split(',');
	   for (var i=0; i<email_array.length; ++i)
	   {
		  var regex = /(^([^@\s]+)@((?:[-_a-z0-9]+\.)+[a-z]{2,})$)|(^$)/i;
	      var trimmed = email_array[i].replace(/^\s+|\s+$/g, '') ;
	      if (regex.test(trimmed) == false)
	      {
		     $('invite_email_message').innerHTML = trimmed + ' is an invalid Email address.'
		     return_value = false;
		     $('send_button').disabled = true;
		     break;
	      }
	   }
	   if (return_value == true)
	   {
	      $('send_button').disabled = false;	
	   }
	}
	else
	{
		$('send_button').disabled = true;
		return_value = false;
	}
	return return_value;
}

function valid_password(value) {
    var regex = /^(?=.{6,40})(?=.*[^a-zA-Z])(?=.*[a-zA-Z]).*$/
    return regex.test(value)
}

function compute_commission(type, credits)
  {
	if (type == "paypal")
	{
		$('commission_bonus_label').style.display = 'none';
		$('paypal_account_label').style.display = 'inline';
	}
	else
	{
		$('paypal_account_label').style.display = 'none';
		$('commission_bonus_label').style.display = 'inline';
		$('commission_bonus').innerHTML= "" + credits;
	}
  }

