$(document).ready( function() {
	if ( $("form.signup_bottom").length )
	{
		$("input.email").focus( function() {
			$(this).select();
		});
		$("form").submit( function() {
			if ( !isGoodString( $(this).children( "input.email" ).val(), true, 5, 100 ) )
			{
				return doBlink( "form." + $(this).attr('class') + " input.email" );
			}
		});
	}
	else if ( $("#submenu").length )
	{
		$("#submenu a").click( function() {
			$("div.subcontent").hide();
			$("#" + $(this).attr('rel') + "_content").show();
			$("#submenu li").removeClass( 'active' );
			$("#" + $(this).attr('rel') ).addClass( 'active' );
			return false;
		});
		$("#speakers_list ul a, #agenda_content a").fancybox({
			'width': 475,
			'height': 500,
			'centerOnScroll': true,
			'overlayOpacity': 0.9
		});
	}
	else if ( $("#contact_form").length )
	{
		$("#send").click( function() {
			if ( !isGoodString( $("#name").val(), false, 2, 200 ) )
			{
				return doBlink( "#name" );
			}
			if ( !isGoodString( $("#company").val(), false, 2, 200 ) )
			{
				return doBlink( "#company" );
			}
			if ( !isGoodString( $("#email").val(), true, 2, 200 ) )
			{
				return doBlink( "#email" );
			}
			if ( !isGoodString( $("#body").val(), false, 2 ) )
			{
				return doBlink( "#body" );
			}

			$.ajax({
				type: "POST",
				url: 'http://' + document.domain + '/send-email.php',
				data: {
					'type' : 'contact',
					'name' : $("#name").val(),
					'company' : $("#company").val(),
					'email' : $("#email").val(),
					'phone' : $("#phone").val(),
					'body' : $("#body").val()
				}
			});

			$("form").slideUp( function() { $("#message").slideDown(); } );
		});
	}
	else
	{
		$("#number").keyup( function() {
			if ( !isInteger( $("#number").val() ) )
			{
				$("#number").val( 1 );
			}
			$("#price").val( 'RM' + ( parseInt( $("#number").val() * 299 ) ) );
		});

		$("#book").click( function() {
			if ( !isInteger( $("#number").val() ) )
			{
				return doBlink( "#number" );
			}
			if ( !isGoodString( $("#company").val(), false, 2, 200 ) )
			{
				return doBlink( "#company" );
			}
			if ( !isGoodString( $("#position").val(), false, 2, 200 ) )
			{
				return doBlink( "#position" );
			}
			if ( !isGoodString( $("#firstname").val(), false, 2, 200 ) )
			{
				return doBlink( "#firstname" );
			}
			if ( !isGoodString( $("#lastname").val(), false, 2, 200 ) )
			{
				return doBlink( "#lastname" );
			}
			if ( !isGoodString( $("#email").val(), true, 2, 200 ) )
			{
				return doBlink( "#email" );
			}
			if ( $("#email").val() != $("#email2").val() )
			{
				return doBlink( "#email2" );
			}
			if ( !isGoodString( $("#phone").val(), false, 8, 20 ) )
			{
				return doBlink( "#phone" );
			}

			$.ajax({
				type: "POST",
				url: 'http://' + document.domain + '/send-email.php',
				data: {
					'type' : $("#type").val(),
					'firstname' : $("#firstname").val(),
					'lastname' : $("#lastname").val(),
					'company' : $("#company").val(),
					'position' : $("#position").val(),
					'email' : $("#email").val(),
					'phone' : $("#phone").val(),
					'number' : $("#number").val()
				}
			});

			$("#message b").text( $("#price").val() );
			$("form").slideUp( function() { $("#message").slideDown(); } );
		});
	}
});

function doBlink( id )
{
	if ( $(id).css('opacity') < 1 )
	{
		return false;
	}
	$(id).css('background', '#f2b9b9').fadeOut(100).fadeIn(100).fadeOut(100).fadeIn(100).fadeOut(100).fadeIn(100, function() {
		$(id).css( 'background', 'white' ).select();
	});

	return false;
}

function isGoodString( string, is_email, min_length, max_length )
{
	string = $.trim(string);
	string = string.replace(/^\s*|\s*$/g,"");
	if ( !string )
		return false;

	if ( min_length != null && min_length > 0 && string.length < min_length)
	{
		return false;
	}

	if ( max_length != null && max_length > 0 && string.length > max_length)
	{
		return false;
	}

	var badChars = "*|,\":<>[]{}`\';()&$#%@";
	if ( is_email )
		badChars = "*|,\":<>[]{}`\';()&$#%";

	for (var i = 0; i < string.length; i++)
	{
		if (badChars.indexOf(string.charAt(i)) != -1)
		{
			return false;
		}
	}
	if ( is_email )
	{
		if (string.search(/^([0-9a-zA-Z]([-.\w[0-9a-zA-Z])*@(([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})$/) == -1)
			return false;
	}
	return true;
}

function isInteger( s )
{
	var i;
	if ( !s.length ) return false;
    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;
    }
    // All characters are numbers.
    return true;
}
