/** * @author chris */ var scriptsLoaded = false; $(document).ready(function() { $.support.cors = true; $("#captchaImageDiv").load("/captchashow.cfm"); $("#reloadLink").click(function(e) { $("#captchaImageDiv").load("/captchashow.cfm?new=" + Math.random()); e.preventDefault(); }); $.fn.serializeObject = function(){ var o = {}; var a = this.serializeArray(); $.each(a, function() { if (o[this.name]) { if (!o[this.name].push) { o[this.name] = [o[this.name]]; } o[this.name].push(this.value || ''); } else { o[this.name] = this.value || ''; } }); return o; }; /* new animation (for homepage) */ $.fn.fadeToggle = function(speed, easing, callback) { return this.animate({opacity: 'toggle'}, speed, easing, callback); }; $('#googleSearch').focus(function() { this.value = ''; }); $('#googleSearch').blur(function() { if (this.value == '') this.value = (this.defaultValue ? this.defaultValue : ''); }); $('#googleSearch').bind('keypress', function(e) { if(e.keyCode==13){ var datastring = $("#cse-search-box").serialize(); $.ajax({ type:"post", url: '/services/rfactor.cfc?method=saveSearch', data: datastring, success: function(data) {} }); } }); /* homepage featured mods tabs */ if(jQuery().tabs) { $("#featured").tabs({fx:{opacity: "toggle"}}); } $(".ui-tabs-nav-item").hover( function(){ $(this).find("div.slideLabelA").slideToggle("fast"); $(this).find("div.slideLabelB").toggle(); $(this).find("div.slideLabelC").toggle(); }, function(){ $(this).find("div.slideLabelA").slideToggle("fast"); $(this).find("div.slideLabelB").toggle(); $(this).find("div.slideLabelC").toggle(); }); /* homepage news/videos/preferences tabs */ if(jQuery().tabs) { $( "#homepage_tabs" ).tabs({ fx: { opacity: 'toggle' } }); } /* new method for validation */ $.validator.addMethod("checkObscene",function(value,element){ var pattern = /fuck|bitch|penis|slut|whore|nigger|nigga|shit|asshole|chink|gook/gi; var thisReturn = value.match(pattern); if (value != ""){ if (thisReturn != null){ return false; }else{ return true; } }else{ return true; } }); /* new method for validation */ $.validator.addMethod("AsciiNoSpace",function(value,element){ var pattern = /^[a-z0-9]+$/i; var thisReturn = value.match(pattern); if (value != "") { if (thisReturn != null) { return true; } else { return false; } }else{ return true; } }); $.validator.addMethod("AsciiSpace",function(value,element){ var pattern = /^[ a-z0-9]+$/i; var thisReturn = value.match(pattern); if (value != "") { if (thisReturn != null) { return true; } else { return false; } }else{ return true; } }); $.validator.addMethod("checkRFC",function(value,element){ var pattern = /rfc/gi; var thisReturn = value.match(pattern); if (thisReturn != null){ return false; }else{ return true; } }); $.validator.addMethod("passwordUsername",function(value,element){ var pword = $('#pwordRegister').val(); var uname = $('#username').val(); if (pword == uname){ return false; }else{ return true; } }); $.validator.addMethod("defaultEmail",function(value,element){ var email = $('#gameTeaserEmail').val(); if (email == 'Your E-Mail Address'){ return false; }else{ return true; } }); /* $.validator.addMethod("emailSpamming",function(value,element){ var defvalue = $('#emailRegistration').val(); var datastring = 'actionofemail=' + defvalue; $.ajax({ type:"post", url: '/services/rfactorsecurity.cfc?method=spamemailcheck', data: datastring, success: function(data) { if(data == 'true') { return true; }else { return false; } } }); });*/ /* for skin upload file size limitation to 15mb from 5mb */ $.validator.addMethod("fileSize",function(value,element){ var fileInput = $("#skinfile")[0]; var fileSize = fileInput.files[0].fileSize; /* Size returned in bytes. */ if (fileSize > 15360000){ return false; }else{ return true; } }); $("#signinButton").click(function(){ $('#loginBox').fadeToggle('fast'); $('#forgotBox').hide(); var chevron = $("#chevronImage").attr('src'); var chevron_down = chevron.search("chevron_down"); if (chevron_down != -1){ $("#chevronImage").attr('src','/images/chevron_up.png'); }else{ $("#chevronImage").attr('src','/images/chevron_down.png'); } }); $(".forgotLink").click(function(){ $("#email").val(''); $("#remindNotify").html('').removeClass('errormsg').removeClass('remindersuccessmsg'); $('#loginBox').fadeToggle('fast'); $('#forgotBox').show(); }); $("#logoutButton").click(function(){ $("#email").val(''); jAlert('success', 'See you soon!!', 'Logout successful', function(){window.location="/logout.cfm"}); }); /* Forgot login */ $("#remindMeForm").validate({ rules: { email: {required:true, email:true} }, messages:{ email:"" }, submitHandler: function(form){ var datastring = $(form).serialize(); $('#remindMe').ajaxStart(function() { $("#remindNotify").removeClass('errormsg').html(''); }); $('#remindMe').ajaxStop(function() { /* $("#remindNotify").html(''); */ }); $.ajax({ type:"post", url: '/services/rfactor.cfc?method=remindme', data: datastring, success: function(data) { var obj = $.parseJSON(data); var success = obj.SUCCESS; if (success){ $("#remindNotify").removeClass('errormsg').addClass('remindersuccessmsg').html('An email has been sent to you'); setTimeout(function(){ $("#forgotBox").fadeOut() }, 2000); }else{ $("#remindNotify").removeClass('remindersuccessmsg').addClass('errormsg').html('Your email address was not found'); } } }); } }); /* Login validation */ $("#loginForm").validate({ rules: { uname: {required:true}, pword: {required:true} }, messages:{ uname:"", pword:"" }, submitHandler: function(form) { var datastring = $(form).serialize(); $.ajax({ type:"post", url: '/services/rfactor.cfc?method=loginUser', data: datastring, dataType: 'json', success: function(data) { if (data.login == 'true'){ $("#ajaxNotify").removeClass('errormsg').html(''); jAlert('success', 'Welcome Back!', 'Login Successful', function(){window.location.reload()}); }else{ $("#ajaxNotify").addClass('errormsg').html('Try again'); } } }); } }); /* Login validation */ $("#authenticateForm").validate({ rules: { uname: {required:true}, pword: {required:true}, botcheck:{required:true, equalTo: "#botcode"} }, messages:{ uname:{required:"Username is required"}, pword:{required:"Password is required"}, botcheck:{required:"Please enter the security code", equalTo:"You code doesn't match"} }, submitHandler: function(form) { var datastring = $(form).serialize(); var dataObj = $(form).serializeObject(); $('#loginSubmit').ajaxStart(function() { $("#ajaxNotify").html('
Checking....'); }); $('#loginSubmit').ajaxStop(function() { $("#ajaxNotify").html(''); }); $.ajax({ type:"post", url: '/services/rfactor.cfc?method=loginUser', data: datastring, dataType: 'json', success: function(data) { var relocate = ""; if (data.referer == "" || data.referer == "undefined" || data.referer == "https://www.rfactorcentral.com/login.cfm" || data.referer == "http://dev.rfactorcentral.com/login.cfm"){ relocate = "/index.cfm"; }else{ relocate = referer; } if (data.login == 'true'){ jAlert('success', 'Welcome Back!', 'Login Successful', function(){window.location = relocate}); }else{ jAlert('error', 'Try again', 'Login unsuccessful'); } } }); } }); /* Registration validation */ $("#register").validate({ onkeyup: false, rules: { membership:{required:true}, firstname: {required:true, minlength:3, checkObscene:true,AsciiNoSpace:true}, lastname: {required:true, minlength:3, checkObscene:true,AsciiNoSpace:true}, emailRegistration: {required:true,email:true, remote:{ url: "/services/rfactorsecurity.cfc?method=checkEmailDupe", type: "post", data: { email: function() { return $("#emailRegistration").val(); } } } }, pwordRegister: {required:true, minlength:6, passwordUsername:true}, pwordconfirm: {required:true, minlength:6, passwordUsername:true,equalTo: "#pwordRegister"}, racecast: {required:true,checkObscene:true,AsciiNoSpace:true, minlength:4, remote:{ url: "/services/rfactorsecurity.cfc?method=checkRaceCastDupe", type: "post", data: { racecast: function() { return $("#racecast").val(); } } } }, botcheck:{required:true}, zeroAbuse:{required:true}, username: { required: true, checkObscene:true, AsciiNoSpace:true, passwordUsername:true, checkRFC:true, minlength:4, remote: { url: "/services/rfactorsecurity.cfc?method=checkUsernameDupe", type: "post", data: { username: function() { return $("#username").val(); } } } } }, messages: { firstname: {required:"Required", minlength:"3 characters minimum", checkObscene:"Please refrain from foul language", AsciiNoSpace:"Only alphanumeric characters"}, lastname: {required:"Required",minlength:"3 characters minimum",checkObscene:"Please refrain from foul language",AsciiNoSpace:"Only alphanumeric characters"}, emailRegistration: { required: "Email address required", email: "Valid email required", remote: "Duplicate email address", AsciiNoSpace:"Only alphanumeric characters" }, username: {required:"Required", minlength:"4 characters minimum",remote:"This username has been taken",checkObscene:"Please refrain from foul language",passwordUsername: "Please make your username and password different",checkRFC:"Please do not use RFC",AsciiNoSpace:"Only alphanumeric characters"}, pwordRegister: {required:"Required", minlength:"6 characters minimum",passwordUsername: "Please make your username and password different"}, pwordconfirm: {required:"Required", minlength:"6 characters minimum",passwordUsername: "Please make your username and password different",equalTo:"Passwords do not match"}, botcheck: {required:"Please enter the security code"}, zeroAbuse:{required:"Required"}, membership:{required:"Please choose a membership tier"}, racecast: {required:"Required",minlength:"4 characters minimum",remote:"This player name has been taken",checkObscene:"Please refrain from foul language",AsciiNoSpace:"Only alphanumeric characters"} }, submitHandler: function(form) { var datastring = $(form).serialize(); var membershipChoice = $("[name='membership']:checked").val(); $.ajax({ type:"post", url: '/services/rfactor.cfc?method=registerUser', data: datastring, dataType:'json', success: function(data) { var obj = $.trim(data); var valid = obj.valid; var rfcid = obj.rfcid; var email = obj.email; var racecast = obj.racecast; var message = obj.Message; if (data.valid == "registered" && membershipChoice == "1") { jAlert('success', 'Thank you for registering!\n\nYou\'ll be taken to your profile page now!\n', 'Registration Successful', function(){window.location = "/profile"}); }else if (data.valid == "registered" && membershipChoice == "2a"){ $("[name='os1']").val(obj.rfcid); $("[name='os2']").val(obj.email); $("[name='os3']").val(obj.racecast); $("#os0 option[value=Monthly]").attr("selected", "selected"); jAlert('success', 'Thank you for registering!\n\nYou\'ll be taken to PayPal.\n', 'Registration Successful', function(){$('#registerAndPayPal').submit();}); }else if (data.valid == "registered" && membershipChoice == "2b"){ $("[name='os1']").val(obj.rfcid); $("[name='os2']").val(obj.email); $("[name='os3']").val(obj.racecast); $("#os0 option[value=Yearly]").attr("selected", "selected"); jAlert('success', 'Thank you for registering!\n\nYou\'ll be taken to PayPal.\n', 'Registration Successful', function(){$('#registerAndPayPal').submit();}); } else if (data.valid == "false"){ jAlert('warning', message,'Registration unsuccessful'); }else{ jAlert('error', 'There was an error with your submission. Please try again.', 'Registration unsuccessful'); } } }); }, errorPlacement: function(error, element){ if (element.attr("name") == "zeroAbuse") { error.appendTo("#abuseError"); } if (element.attr("name") == "firstname") { error.appendTo("#firstnameError"); } if (element.attr("name") == "lastname") { error.appendTo("#lastnameError"); } if (element.attr("name") == "emailRegistration") { error.appendTo("#emailError"); } if (element.attr("name") == "username") { error.appendTo("#unameResult"); } if (element.attr("name") == "pwordRegister") { error.appendTo("#pwordError"); } if (element.attr("name") == "pwordconfirm") { error.appendTo("#pwordConfirmError"); } if (element.attr("name") == "racecast") { error.appendTo("#racecastError"); } if (element.attr("name") == "botcheck") { error.appendTo("#botcheckError"); } if (element.attr("name") == "membership") { error.appendTo("#membershipError"); } } }); /* Track # of clicks on the DOWNLOAD CLIENT button in the footer */ $(".clientDownload").click(function(event){ $.post('/services/rfactor.cfc?method=updateClientDownload', function(data){}); }); /* Profile validation */ $("#profileEdit").validate({ rules: { firstname: {required:true,minlength:3}, lastname: {required:true,minlength:3}, email:{required:true, email:true}, pword: {required:true, minlength:6, maxlength:15} }, messages:{ firstname:{required:"First Name is required"}, lastname:{required:"Last Name is required"}, email:{required:"Email address is required",email:"A valid email address is required"}, pword:{required:"Password is required", minlength:"6 characters minimum", maxlength:"15 characters maximum"} }, submitHandler: function(form) { form.submit(); } }); /* Contact validation */ $("#contactForm").validate({ rules: { name: {required:true}, email: {required:true,email:true}, botcheck:{required:true, equalTo: "#botcode"}, subject:{required:true}, message:{required:true} }, messages:{ name:{required:"Your name is required"}, email:{required:"Your email is required",email:"Valid email required"}, botcheck:{required:"Please enter the security code",equalTo:"You code doesn't match"}, subject:{required:"Please pick a subject matter"}, message:{required:"Please enter a message"} }, submitHandler: function(form) { form.submit(); } }); /* slide description of mod on detail page */ $("#descHeader").click(function(){ $("#slideThis").slideToggle("slow"); }); $('a[rel*=lightbox]').lightBox({ imageLoading: '/images/lightbox-ico-loading.gif', imageBtnClose: '/images/lightbox-btn-close-black.gif', imageBtnPrev: '/images/lightbox-btn-prev.gif', imageBtnNext: '/images/lightbox-btn-next.gif', containerResizeSpeed: 350 }); /* Plaeholder for input fields example: http://www.perfectline.co.uk/blog/change-input-field-placeholder-with-jquery */ $('.placeholder').each(function(i) { var item = $(this); var text = item.attr('rel'); var form = item.parents('form:first'); if (item.val() === ''){ item.val(text); item.css('color', '#888'); } item.bind('focus.placeholder', function(event) { if (item.val() === text) item.val(''); item.css('color', ''); }); item.bind('blur.placeholder', function(event) { if (item.val() === '') item.val(text); item.css('color', '#888'); }); form.bind("submit.placeholder", function(event) { if (item.val() === text) item.val(""); }); }); /* validation for more buttons link */ $("#buttonlogin").click(function() { location.href = '/login.cfm'; }); /* select 2 */ if(jQuery().niceSelect) { $("#otherlogins").niceSelect(); $(document).on("change",".socialselection",function() { var e = $(this); var mode = $('div.nice-select.socialselection span.current').text(); if(e.val() == '') { jAlert('warning', 'Please Choose the Service which you want to use for Login', 'Oops'); } else { WinOpen('captcha.cfm?mode='+ mode,'page'); $("#otherlogins").val('Other Social Sites Login'); $('div.nice-select.socialselection span.current').text('Other Social Sites Login'); $('div.nice-select.socialselection').find('li:first, li.selected').toggleClass('selected'); } }); } /* form validation for rfactor2 pre-release */ $("#rFactor2PreRelease").validate({ rules: { gameTeaserEmail: {required:true, email:true, defaultEmail:true} }, messages:{ gameTeaserEmail:{required:"Email Address is required", email: "A valid Email Address is required", defaultEmail: "A valid Email Address is required"} }, errorPlacement: function(error, element){ if (element.attr("name") == "gameTeaserEmail") { error.appendTo("#rf2TeaserEmailError"); } }, submitHandler: function(form) { var datastring = $(form).serialize(); $.ajax({ type:"post", url: '/services/rfactor.cfc?method=capturePreRelease', data: datastring, success: function(data) { var obj = $.parseJSON(data); if (obj.SUCCESS){ $("
We'll let you know as soon as we hear something.

Please check your inbox and spam folders to confirm registration.
").appendTo('body'); $("#preReleaseConfirm").dialog({title:'Pre-Release registration successful'}); }else{ $("
Try again.
").appendTo('body'); $("#preReleaseConfirm").dialog({title:'Pre-Release registration unsuccessful'}); } } }); } }); }); function WinOpen(theURL,winSize) { if (winSize == 'page') { myWidth=1000 ; myHeight=700 ; features = 'scrollbars=1, resizable=1, menubar=1,toolbar=0,titlebar=1' ; } else if (winSize == 'list') { myWidth=700 ; myHeight=555 ; features = 'scrollbars=1, resizable=1, menubar=1,toolbar=0,titlebar=1' ; } else if (winSize == 'small') { myWidth=400 ; myHeight=300 ; features = 'scrollbars=1, resizable=1, menubar=1,toolbar=0,titlebar=1' ; } else { myWidth=400 ; myHeight=500 ; features = 'scrollbars=0, resizable=0' ; } if(window.screen) { var myLeft = (screen.width-myWidth)/2; var myTop = (screen.height-myHeight)/2; features+=(features!='')?',':''; features+=',left='+myLeft+',top='+myTop; } if (arguments[2]==null) window.open(theURL,'',features+((features!='')?',':'')+'width='+myWidth+',height='+myHeight); else window.open(theURL,arguments[2],features+((features!='')?',':'')+'width='+myWidth+',height='+myHeight); }