/**
 * Ajax methods
 */
function registerNumber(phoneNumber) {
	$.ajax({
		url: '/ajax-register-number.php',
		type: 'POST',
		dataType: 'text',
		data: {phoneNumber: phoneNumber},
		error: function(){
			alert('Unable to process phone number, please try again or visit wap.mig33.com from your phone');
		},
		success: function(data){
			$('#joinForm').hide();
			$('.successMsg p strong').text(data);
			$('.successMsg').show();
		}
	});
}

function updateCountry() {
	var countryId=$('select[name=countrylist] option:selected').val();
	var countryName=$('select[name=countrylist] option:selected').text();
	$.ajax({
		url: '/ajax-id-to-idd.php',
		type: 'GET',
		dataType: 'text',
		data: {countryId: countryId},
		error: function(){
			alert('Unable get country details, please try again or visit wap.mig33.com from your phone');
		},
		success: function(data){
			updateCountryDisplay(data, countryName);
		}
	});
	return false;
}

function ipToCountry() {
	//var clientIp='<?php echo getRealIpAddr();?>';
	var clientIp='121.44.66.170';
	$.ajax({
		url: './ajax-ip-to-country.php',
		type: 'GET',
		dataType: 'json',
		data: {clientIp: clientIp},
		error: function(){
			alert('Unable get country idd details, please try again or visit wap.mig33.com from your phone');
		},
		success: function(data){
			updateCountryDisplay(data.iddCode, data.countryName);
			$('select[name=countrylist]').find('option').each(function(){
				if ($(this).val() == data.countryId) {
					$(this).attr('selected', 'selected');
				}
			});
		}
	});
	return false;
}

/**
 * Helper functions
 */
function updateCountryDisplay(idd, countryName) {
	$('#idd').text("+" + idd);
	$('#join p.secondary span').text("You're from " + countryName);
}

function initialiseRoundedBorders() {
	var buttonBorder = RUZEE.ShadedBorder.create({ corner:6, border:2});
	buttonBorder.render($('a.button'));
	var defaultBorder = RUZEE.ShadedBorder.create({ corner:10, border:2});
	defaultBorder.render($('#join'));
	defaultBorder.render($('.box'));
	defaultBorder.render($('.col .primary'));
	var flashBorder = RUZEE.ShadedBorder.create({ corner:10, border:5});
	flashBorder.render($('#flashContainer'));
}

function bindEvents() {
	$('#getmig').click(function(){
		//ipToCountry();
		$('#joinContainer').fadeIn("320", function() {
			//$("#phoneNumber").val("").focus();
			$('#phoneContainer').hide();
			$('#getmigContainer').hide();
			});
		return false;
	});

	$('#changeIdd').click(function(){
		$('#iddSelector').show();
		$('#changeIdd').hide();
		return false;
	});

	$("#smsme").click (function (){
		var phoneNumber = $("#idd").text() + $("#phoneNumber").val();
		if (validatePhoneNumber(phoneNumber))
			registerNumber(phoneNumber);
		return false;
	});
}


/**
 * Validation functions
 */
var digits = "0123456789";
var phoneNumberDelimiters = "()- ";
var validWorldPhoneChars = phoneNumberDelimiters + "+";
var minDigitsInIPhoneNumber = 8;

function isInteger(s) {
	var i;
	for (i = 0; i < s.length; i++) {
		// Check that current character is number.
		var c = s.charAt(i);
		if (((c < "0") || (c > "9"))) return false;
	}
	return true;
}

function stripCharsInBag(s, bag){
	var i;
	var returnString = "";
	for (i = 0; i < s.length; i++){
		var c = s.charAt(i);
		if (bag.indexOf(c) == -1) returnString += c;
	}
	return returnString;
}

function checkInternationalPhone(strPhone){
	s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function validatePhoneNumber(phonNumber){
	if (!checkInternationalPhone(phonNumber)){
		alert("Please Enter a Valid Phone Number");
		return false;
	}
	return true;
}

/**
 * Main document ready function
 */
$(document).ready(function () {
	initialiseRoundedBorders();
	bindEvents();
});






