window.onerror = null; var isIE6 = false; var path = "/2009REDESIGN/2.5/"; var game_detail_url = "game:"; var lightbox_url = '/lb:'; var deeplink_url = '/dl:'; var downloads_collection_url = 'collection:'; var downloads_content_url = "content:"; var backgroundimage = "http://media.rockstargames.com/rockstar/global_data/downloads/wallpapers/games/reddeadredemption_marston4_1024x768.jpg"; var indexOflb; var indexOfdl; var indexOfdownloadsCollection; var indexOfdownloadsContent; var indexOfGame; var url_history = Array(); var url; var image_loader; var videoplayer; var timeouts = Array(); var agegateCookie = ""; if (path == '/') { path = ''; } $('.video_thumb').live('click', function() { SWFAddress.setValue("video:"+$(this).attr('media_id')); return false; }); $('.search_video_thumb').live('click', function() { var content = 'http://www.rockstargames.com/videos#/video:' + $(this).attr('media_id'); window.location = content; return false; }); $('.search_games_thumb').live('click', function() { //var content = 'http://www.rockstargames.com/games#/game:' + $(this).attr('games_id'); var content = '#/game:' + $(this).attr('games_id'); window.location = content; return false; }); $('.media_search_pagination').live('click', function() { updatePagination('media',$(this).attr('segment'),$(this).attr('pagenum')); updatePaginationSections('media',$(this).attr('totalpages'),$(this).attr('pagenum')); }); $('.games_search_pagination').live('click', function() { updatePagination('games',$(this).attr('segment'),$(this).attr('pagenum')); updatePaginationSections('games',$(this).attr('totalpages'),$(this).attr('pagenum')); }); $('.news_search_pagination').live('click', function() { updatePagination('news',$(this).attr('segment'),$(this).attr('pagenum')); updatePaginationSections('news',$(this).attr('totalpages'),$(this).attr('pagenum')); }); $('.update').live('click', function() { $('.loading').css({visibility:'visible'}); if ($(this).attr('update_this') == 'comments') { $('html,body').animate({scrollTop: $('#comments').offset().top}, 400); } var display = $('#' + $(this).attr('update_this')); display.load( $(this).attr('href_link') , function () { registerDropShadows(); registerBlankets(); $('.loading').css({visibility:'hidden'}); }); return false; }); $('.download_navigation').live('mouseover', function() { var group_id = $(this).attr('group_id'); var group_img = $('#groupimg_' + group_id); group_img.attr("src", group_img.attr('selected') == 1 ? group_img.attr('over_selected') : group_img.attr('over_notselected')); }); $('.download_navigation').live('mouseout', function() { var group_id = $(this).attr('group_id'); var group_img = $('#groupimg_' + group_id); group_img.attr("src", group_img.attr('selected') == 1 ? group_img.attr('out_selected') : group_img.attr('out_notselected')); }); $('.download_navigation').live('click', function() { var group_id = $(this).attr('group_id'); var group_img = $('#groupimg_' + group_id); if (group_img.attr('selected') == 1) { $.address.value(''); } else { var content = deeplink_url + '/' + downloads_collection_url + group_id + '/' + downloads_content_url + $(this).attr('content'); $.address.value(content); } }); $('.submitting_mouthoff').live('click', function() { disallowSubmit(); $('#mouthoffAddForm').submit(); }); $('.close_mobile').live('click', function() { $('#lightbox').fadeOut(300); $('#lb_content').fadeOut(300); return false; }); $('img.close').live('click', function() { var was = url_history[url_history.length-2]; var new_url; //&& (was.indexOf(deeplink_url) == -1) if (was && (was.indexOf(lightbox_url) == -1) && (was.indexOf(game_detail_url) == -1)) { new_url = was; } else { new_url = '/'; } $.address.value(new_url); return false; }); /* $('.featured_item').live('click', function() { var href = $(this).attr("href_link"); var lightbox = $(this).attr('lightbox'); if (lightbox == 1) { var url = lightbox_url + href; $.address.value(url); return false; } window.location = href; return false; }); */ $('img.close').live('mouseover', function() { $(this).attr("src",$(this).attr('hover')); return false; }); $('img.close').live('mouseout', function() { $(this).attr("src",$(this).attr('default')); return false; }); $('.imgSwap').live('mouseover', function() { var cssProp = { 'cursor': 'pointer' }; $(this).css(cssProp); $(this).attr("src", $(this).attr('hover')); return false; }); $('.imgSwap').live('mouseout', function() { $(this).attr("src",$(this).attr('default')); return false; }); $('.series_goback').live('click', function() { var url = deeplink_url + '/' + downloads_collection_url + $(this).attr('group') + '/' + downloads_content_url + $(this).attr('href_link'); $.address.value(url); return false; }); $('.download_item').live('click', function() { var page = $(this).attr("page"); var group_div = $( '#group_' + $(this).attr("group_id")); var url = deeplink_url + '/' + downloads_collection_url + $(this).attr("group_id") + '/' + downloads_content_url + page; $.address.value(url); return false; }); $('.buddyicon').live('click', function() { var href = $(this).attr("href"); window.open(href); return false; }); $('a.lightbox').live('click', function() { var url = lightbox_url + $(this).attr('href_link'); $.address.value(url); return false; }); $('a.deeplink').live('click', function() { var url = deeplink_url + $(this).attr('href_link'); $.address.value(url); return false; }); function turnOffLights() { if (!$("#video_lights").is(":hidden")) { toggleLights(); } } function toggleLights(toggle) { $('#video_lights').toggle(); var cssVideo; var cssLights; if ($("#video_lights").is(":hidden")) { cssLights = { 'z-index' : '0' }; cssVideo = { 'z-index' : '0' }; $('#video_z').css({'z-index': '105'}); } else { cssLights = { 'z-index' : '999' }; cssVideo = { 'z-index' : '1000' }; } $('#video_lights').css(cssLights); $('#videoplayer').css(cssVideo); } $('.filter').live('mouseover', function() { var hover = $(this).attr('hover'); var selected = $(this).attr('selected'); if (selected != 1) { $(this).attr('src', hover); } return false; }); $('.filter').live('mouseout', function() { var default_i = $(this).attr('default'); var selected = $(this).attr('selected'); if (selected != 1) { $(this).attr('src', default_i); } return false; }); function URLEncode (clearString) { var output = ''; var x = 0; clearString = clearString.toString(); var regex = /(^[a-zA-Z0-9_.]*)/; while (x < clearString.length) { var match = regex.exec(clearString.substr(x)); if (match != null && match.length > 1 && match[1] != '') { output += match[1]; x += match[1].length; } else { if (clearString[x] == ' ') output += '+'; else { var charCode = clearString.charCodeAt(x); var hexVal = charCode.toString(16); output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase(); } x++; } } return output; } var onload_timer; function loadPageIntoLightbox() { if(isIE6) { window.location = url; return false; } $('#lb_content').empty(); $('#lb_content').removeAttr('style'); if (url.indexOf('mouthoff') != -1) { url += "?cache=" + Math.random(); } $.get(url,function(data) { $('#lb_content').css({'margin-top' : getScrollXY()[1] + 20 + 'px'}); $('#lb_content').html(data); $('#lb_content').fadeIn(300); //$('html,body').animate({scrollTop: 0}, 400); }); } function getScrollXY() { var scrOfX = 0, scrOfY = 0; if( typeof( window.pageYOffset ) == 'number' ) { //Netscape compliant scrOfY = window.pageYOffset; scrOfX = window.pageXOffset; } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) { //DOM compliant scrOfY = document.body.scrollTop; scrOfX = document.body.scrollLeft; } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) { //IE6 standards compliant mode scrOfY = document.documentElement.scrollTop; scrOfX = document.documentElement.scrollLeft; } return [ scrOfX, scrOfY ]; } function loadPageIntoShell(url, container, show_loader, callback) { //$('.loading').css({visibility:'visible'}); switch(container) { case '#side_filtration': // break; case '#games_section': $('.games_loading').css({visibility:'visible'}); break; case '#media_section': $('.media_loading').css({visibility:'visible'}); break; case '#news_section': $('.news_loading').css({visibility:'visible'}); break; default : $('.loading').css({visibility:'visible'}); break; } if (container == undefined) { container = '#section_content'; } if (show_loader) { $(container).append(image_loader); } url = path + url + "?cahe=" + Math.random(); //$('#debug').html(url); $.get(url,function(data) { $(container).html((data)); registerDropShadows(); registerBlankets(); switch(container) { case '#side_filtration': // break; case '#games_section': $('.games_loading').css({visibility:'hidden'}); break; case '#media_section': $('.media_loading').css({visibility:'hidden'}); break; case '#news_section': $('.news_loading').css({visibility:'hidden'}); /*$('#news_section').css({'display':'block'}); $('#news_section').css({'visibility':'visible'}); $('#news_section').css({'border':'1px solid red'}); alert('container is:' +$(container)+'::'+container); alert('data is: '+ data);*/ break; default : $('.loading').css({visibility:'hidden'}); break; } if (typeof callback == "function") { callback(data); } }); return false; } function showRequest(formData, jqForm, options) { // formData is an array; here we use $.param to convert it to a string to display it // but the form plugin does this for you automatically when it submits the data var queryString = $.param(formData); // jqForm is a jQuery object encapsulating the form element. To access the // DOM element for the form do this: //// var formElement = jqForm[0]; // alert('About to submit: \n\n' + queryString); // here we could return false to prevent the form from being submitted; // returning anything other than false will allow the form submit to continue return true; } // post-submit callback function showResponse(responseText, statusText) { // for normal html responses, the first argument to the success callback // is the XMLHttpRequest object's responseText property // if the ajaxForm method was passed an Options Object with the dataType // property set to 'xml' then the first argument to the success callback // is the XMLHttpRequest object's responseXML property // if the ajaxForm method was passed an Options Object with the dataType // property set to 'json' then the first argument to the success callback // is the json data object returned by the server // alert('status: ' + statusText + '\n\nresponseText: \n' + responseText + // '\n\nThe output div should have already been updated with the responseText.'); } function backgroundLoaded() { //return false; var bg = $('#bg'); bg.fillScreen(); bg.fadeIn(1000); $(window).resize(function(){ bg.fillScreen();}); } function videoPlayerLoaded() { //$('#videoplayer').animate({opacity: 0}, 0); //$('.loading_vp').animate({opacity: 0}, 1000, function() { // $('.loading_vp').css({'display' : 'none'}); // $('#videoplayer').animate({opacity: 1}, 1000, function () {}); //}); //$('#videoplayer').fadeIn('slow'); $('.loading_vp').css({'visibility':'hidden'}); } function videoBookmark(url,title) { if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4)) { window.external.AddFavorite(url,title); } else if (navigator.appName == "Netscape") { if (navigator.userAgent.indexOf('Safari') != -1) { alert('press Command+D to bookmark in Safari'); } window.sidebar.addPanel(title,url,""); } else { alert("Press CTRL-D (Netscape) or CTRL-T (Opera) to bookmark"); } } function makeBlanket(width, height) { var path = 'http://media.rockstargames.com/rockstar/local_data/US'; var wrapper = $(document.createElement("div")).attr("style","position:relative;background-color:#fff;width:"+(width)+"px;height:"+(height)+"px;"); $(document.createElement("div")).attr("style","position:absolute;top:"+(height)+";background:url('"+path+"/img/box/outer/bg_bot.png') repeat-x;bottom:0; height:3px;width:100%;").prependTo(wrapper); //9 $(document.createElement("div")).attr("style","z-index:500;float:right;position:absolute;top:"+(height-1)+";background:url('"+path+"/img/box/outer/bg_botright.png') no-repeat;bottom:0; right:0;width:4px; height:4px;right:0;").prependTo(wrapper); //8 $(document.createElement("div")).attr("style","z-index:500;float:left;position:absolute;top:"+(height-1)+";background:url('"+path+"/img/box/outer/bg_botleft.png') no-repeat;bottom:0; left:0; width:4px; height:4px;").prependTo(wrapper); //7 $(document.createElement("div")).attr("style","clear:left;").prependTo(wrapper); //6 $(document.createElement("div")).attr("style","float:right; position:absolute;top:0;background:url('"+path+"/img/box/outer/bg_right.png') repeat-y;right:0; width:2px; height:100%;").prependTo(wrapper); //5 $(document.createElement("div")).attr("style","float:left; position:absolute;top:0;background:url('"+path+"/img/box/outer/bg_left.png') repeat-y; left:0; width:2px; height:100%; ").prependTo(wrapper); //4 $(document.createElement("div")).attr("style","clear:left;").prependTo(wrapper); //6 $(document.createElement("div")).attr("style","background:url('"+path+"/img/box/outer/bg_top.png') repeat-x; height:1px;").prependTo(wrapper); //3 $(document.createElement("div")).attr("style","float:right; position:absolute;top:0;background:url('"+path+"/img/box/outer/bg_topright.png') no-repeat;top:0; right:0; height:1px; width:2px;").prependTo(wrapper); //2 $(document.createElement("div")).attr("style","float:left; position:absolute;top:0;background:url('"+path+"/img/box/outer/bg_topleft.png') no-repeat;top:0; left:0; height:1px; width:2px;").prependTo(wrapper); //1 return wrapper; } function registerDropShadows() { $('.dropShadow').each(function(){ if ($(this).children('.shell').width() == null) { $(this).bind('mouseenter', function() { var padd = isNaN($(this).attr('pad')) ? 10 : Number($(this).attr('pad')); var width = $(this).innerWidth(); var height = $(this).innerHeight(); var blanket = makeBlanket(width + padd + 4, height + padd + 6); var shell = $(this).children('.shell'); shell.prepend(blanket); var pos = $(this).offset(); var top = -3 - padd/2; var left = -2 - padd/2; shell.attr('style', "position:absolute;margin-left:"+left+"px;margin-top:"+top+"px;"); }); $(this).bind('mouseleave', function() { var shell = $(this).children('.shell'); shell.empty(); }); var content = $(this).html(); $(this).empty(); $(this).prepend($(document.createElement("div")).attr("class","content").attr('style', 'position:relative;z-index:1;').html(content)); $(this).prepend($(document.createElement("div")).attr("class","shell")); //$(this).attr('style', 'cursor:pointer;'); } }); } function reRegisterBlankets() { $('.blanket').each(function(){ $(this).children('.shell').remove(); $(this).prepend($(document.createElement("div")).attr("class","shell").attr('style', "position:absolute;").append(makeBlanket( $(this).innerWidth(), $(this).innerHeight()))); }); } function registerBlankets() { $('.blanket').each(function(){ if ($(this).children('.shell').width() == null) { var height = $(this).innerHeight(); var width = $(this).innerWidth(); var content = $(this).html(); var offset = 5; $(this).empty(); var content = $(this).prepend($(document.createElement("div")).attr("class","content").attr('style', 'position:relative;z-index:1;border:0px solid #f09;').html(content)); $(this).prepend($(document.createElement("div")).attr("class","shell").attr('style', "position:absolute;").append(makeBlanket(width, height))); } }); } function trim(s){ return s.replace(/^\s*(.*?)\s*$/,"$1") } function bodyOnload() { reRegisterBlankets(); return false; } $(document).ready(function() { //image_loader = $(document.createElement("img")).attr("src", path + "/img/loading.gif").attr('height', 20); jQuery.fn.getBox = function() { return { left: $(this).offset().left, top: $(this).offset().top, width: $(this).outerWidth(), height: $(this).outerHeight() }; } jQuery.fn.getBox = function() { return { left: $(this).offset().left, top: $(this).offset().top, width: $(this).outerWidth(), height: $(this).outerHeight() }; } jQuery.fn.position = function(target, options) { var anchorOffsets = {t: 0, l: 0, c: 0.5, b: 1, r: 1}; var defaults = { anchor: ['tl', 'tl'], animate: false, offset: [0, 0] }; options = $.extend(defaults, options); var targetBox = $(target).getBox(); var sourceBox = $(this).getBox(); //origin is at the top-left of the target element var left = targetBox.left; var top = targetBox.top; //alignment with respect to source top -= anchorOffsets[options.anchor[0].charAt(0)] * sourceBox.height; left -= anchorOffsets[options.anchor[0].charAt(1)] * sourceBox.width; //alignment with respect to target top += anchorOffsets[options.anchor[1].charAt(0)] * targetBox.height; left += anchorOffsets[options.anchor[1].charAt(1)] * targetBox.width; //add offset to final coordinates left += options.offset[0]; top += options.offset[1]; $(this).css({ left: left + 'px', top: top + 'px' }); } jQuery.fn.outershadow = function() { $(this).attr('style') ? null : $(this).attr('style', 'padding:5px;'); var style = $(this).attr('style'); var paddingdifferenceX = $(this).innerWidth() - $(this).width(); var paddingdifferenceY = $(this).innerHeight() - $(this).height(); if (style.toLowerCase().indexOf('height') != -1) { $(this).height($(this).height() - paddingdifferenceY); } if (style.toLowerCase().indexOf('width') != -1) { $(this).width($(this).width() - paddingdifferenceX); } var margin = $(this).css('margin'); var padding = $(this).css('padding'); var width = $(this).css('width'); var height = $(this).css('height'); if (style.toLowerCase().indexOf('height') != -1) { var css = { 'width':width, 'height':height, 'margin':margin, 'padding':padding } } else { var css = { 'width':width, 'margin':margin, 'padding':padding } } for (var a in css) { if (a == 'margin' && css[a] == 'auto') { css.margin = "0"; } } $(this).wrap($(document.createElement("div")).css(css).attr('class', 'outershadow_wrapper')); $(this).css({'margin':'0'}); $(this).css({'padding':'0'}); var elements = $(document.createElement("div")).attr('class', 'shadow_elements'); elements.prepend('
'); elements.prepend(''); elements.prepend(''); elements.prepend(''); elements.prepend(''); elements.prepend(''); elements.prepend(''); elements.prepend(''); $(this).append(elements); }; jQuery.fn.fillScreen = function() { var imgWidth = $(this).width(); var imgHeight = $(this).height(); var stageWidth = $(window).width(); var stageHeight = $(window).height();; var ratio2 = imgWidth/imgHeight; var ratio1 = stageWidth / stageHeight; if (ratio1 < ratio2) { vh = stageHeight; vw = stageHeight / imgHeight * imgWidth; } else { vw = stageWidth; vh = stageWidth / imgWidth * imgHeight; } //$(this).removeAttr('style'); var cssProp = { 'width': vw + 'px', 'height': vh + 'px' }; $(this).css(cssProp); } jQuery.fn.fade = function() { var cssProp = { visibility: 'visible' }; //$(this).css(cssProp); $(this).fadeIn("slow"); } jQuery.fn.center = function(params) { var options = { vertical: true, horizontal: true } op = jQuery.extend(options, params); return this.each(function(){ var $self = jQuery(this); var width = $self.width(); var height = $self.height(); var paddingTop = parseInt($self.css("padding-top")); var paddingBottom = parseInt($self.css("padding-bottom")); var borderTop = parseInt($self.css("border-top-width")); var borderBottom = parseInt($self.css("border-bottom-width")); var mediaBorder = (borderTop+borderBottom)/2; var mediaPadding = (paddingTop+paddingBottom)/2; var positionType = $self.parent().css("position"); var halfWidth = (width/2)*(-1); var halfHeight = ((height/2)*(-1))-mediaPadding-mediaBorder; var animating = { top: '50%', left: '50%' }; var cssProp = { position: 'absolute' }; if(op.vertical) { cssProp.height = height; cssProp.top = '50%'; cssProp.marginTop = halfHeight; } if(op.horizontal) { cssProp.width = width; cssProp.left = '50%'; cssProp.marginLeft = halfWidth; } if(positionType == 'static') { $self.parent().css("position","relative"); } $self.css(cssProp); // $self.animate(animating); }); }; $(document).bind('mouseleave', function() { var display = $('#' + 'tagline_header'); if (display.attr('default') == display.attr('src')) { return false; } //return false; display.stop(true, true); display.fadeOut('fast', function () { display.attr('src', display.attr('default')); }); }); //BEGIN OF ROLL OVER FUNCTION FOR NAVIGATION TAG LINE $('.tagline_update').each(function(){ $(this).bind('mouseenter', function() { var o = $(this).attr('tag'); var display = $('#' + 'tagline_header'); display.stop(true, true); display.fadeOut('fast', function () { display.attr('src', o); }); }); }); $('#navitems').bind('mouseleave', function() { var display = $('#' + 'tagline_header'); display.stop(true, true); display.fadeOut('fast', function () { display.attr('src', display.attr('default')); }); }); //END OF ROLL OVER FUNCTION FOR NAVIGATION TAG LINE $.address.change(function(event) { if (typeof triggerCollection == "function") { triggerCollection(null); } url = event.value; url_history.push(event.value); indexOflb = url.indexOf(lightbox_url); indexOfGame = url.indexOf(game_detail_url); indexOfdl = url.indexOf(deeplink_url); if (indexOfdl != -1) { url = url.substr(0, indexOfdl) + url.substr(indexOfdl + deeplink_url.length, url.length); indexOfdownloadsCollection = url.indexOf(downloads_collection_url); if (indexOfdownloadsCollection != -1) { var c_id = url.substr(indexOfdownloadsCollection + (indexOfdownloadsCollection + url.indexOf(':') - 1)); c_id = c_id.substr(0, 1); indexOfdownloadsContent = url.indexOf(downloads_content_url); if (indexOfdownloadsContent != -1) { var content_f = url.substr(indexOfdownloadsContent + downloads_content_url.length, url.length); loadPageIntoShell(content_f, '#group_' + c_id); } if (isNaN(c_id)) { return; } triggerCollection(c_id); } else { loadPageIntoShell(url); } } else { //$('#lightbox').fadeOut(300); } if (indexOfGame != -1) { var game_id = url.substr(indexOfGame + game_detail_url.length, url.length); url = path + '/games/details/' + game_id; $('#lightbox').fadeIn(300); loadPageIntoLightbox(); return false; } if (indexOflb != -1) { url = url.substr(0, indexOflb) + url.substr(indexOflb + lightbox_url.length, url.length); $('#lightbox').fadeIn(300); loadPageIntoLightbox(); } else { $('#lightbox').fadeOut(300); $('#lb_content').fadeOut(300, function() { $(this).empty(); }); } }); //For the search box var $notChecked = true; var $initSearchBox = true; $('#search').bind('mouseenter', function () { //$('#search').mouseenter ( // function(){ if($notChecked) { $('.search_box').addClass('d_inline_block'); $('.search_box').removeClass('d_none'); $('#search').children('.shell').remove(); $('#search').addClass('blanket'); $('#search').css({width:'255px'}); $('#search').css({height:'25px'}); $('#search_label').css({display:'block'}); //$('#search').show("slow"); registerBlankets(); $notChecked = false; initSearchBox = false; } }); $('#search').bind('mouseleave', function() { $('#search').children('.shell').remove(); $('#search').css({width:'90px'}); $('.search_box').removeClass('d_inline_block'); $('.search_box').addClass('d_none'); $('#search').removeClass('blanket'); $('#search').children('.content').css({'margin-bottom':'0'}); $('#search_label').css({display:'none'}); $notChecked = true; }); var search_options = { target: '#comments', // target element(s) to be updated with server response beforeSubmit: function() { alert('.'); }, success: function() { alert('.'); } }; $('#searchAddForm').ajaxForm(search_options); videoplayer = $(document.getElementById("videoplayer")); registerBlankets(); registerDropdowns(); registerDropShadows(); if (typeof documentReady=="function") { documentReady(); } $('#bg').attr('src', backgroundimage); $('.outershadow').each(function() { $(this).outershadow(); }); $('.toggleshadow').bind({ mouseenter:function() { $(this).children('.shadow_elements').show(); }, mouseleave:function() { $(this).children('.shadow_elements').hide(); } }); $('.toggleshadow').each( function () { $(this).mouseleave(); }); });