var MyTrader = function(){ var _authHeader, _guestHeader, _loginWindow, _names; var _savedClassName, _unsavedClassName; var _loginWindow, _loginFormName, _loginWindowTopOffset; var _maxNumInventory = 20; var _ajaxUrl = "/Gettiledata/mytraderheader/ajmc/"; var _handleException = function(e){ if (console && typeof console.log != "undefined") { var _error; if (typeof e.message != "undefined") { _error = e.message; } else { _error = e; } console.log("MYT => " + _error); } } var _getCookie = function(cookieName) { var _x, _y, _cookies = document.cookie.split(";"); for (var i=0; i<_cookies.length; i++) { x = _cookies[i].substr(0, _cookies[i].indexOf("=")); y = _cookies[i].substr(_cookies[i].indexOf("=")+1); x = x.replace(/^\s+|\s+$/g, ""); if (x == cookieName) { return unescape(y); } } }; var _send = function(params, callback){ $.ajax({ url: _ajaxUrl, data: params, dataType: "json", type: "POST", cache: false, error: function(req, err, ex){ _handleException(err); console.log(req); }, complete: function(req, stat){ _populate(); }, success: callback }); }; var _showHeader = function(){ if (MyTrader.isSignedIn()) { _guestHeader.hide(); _authHeader.show(); } else { _authHeader.hide(); _guestHeader.show(); } }; var _populate = function(){ if (!MyTrader.isSignedIn()) return false; $("#mytn").html(_getCookie(_names.firstName) + " " + _getCookie(_names.lastName)); $("#mytv").html("("+_getCookie(_names.numSavedInventory)+")"); $("#myts").html("("+_getCookie(_names.numSavedSearches)+")"); $("#mytl").html("("+_getCookie(_names.numListings)+")"); }; var _scan = function(){ if (!MyTrader.isSignedIn()) return false; var _pageInventory, _checkPageInventory; if (window.location.href.search("search-results") != -1) { _unsavedClassName = "sSav"; _savedClassName = "sSavD"; _pageInventory = $("." + _savedClassName + ", ."+_unsavedClassName); _checkPageInventory = function(obj, ids){ var _id = obj.onclick.toString().split("this,")[1].split(")")[0]; if (_id) { return ($.inArray(_id, ids) != -1); } return false; }; } else if (window.location.href.search("browse") != -1) { _unsavedClassName = "dlrChkBoxOff"; _savedClassName = "dlrChkBoxOn"; _pageInventory = $('[id^="proc_"]'); _checkPageInventory = function(obj, ids){ var _id = obj.id.split("_")[1]; if (_id) { return ($.inArray(_id, ids) != -1); } return false; }; } if (_pageInventory) { _send({ "m": "rud" }, function(data, stat, req){ var _ids = []; if (typeof data.sv_ids != "undefined") { _ids = data.sv_ids; } _pageInventory.each(function(){ obj = $(this); if (_checkPageInventory(this, _ids) && obj.hasClass(_unsavedClassName)) { obj.removeClass(_unsavedClassName).addClass(_savedClassName); } }); }); } }; return { isSignedIn: function(){ return (typeof _getCookie(_names.auth) != "undefined"); }, login: function(isWindowShown){ var _adId; if (this.isSignedIn()) { return false; } if (arguments.length > 1) { _adId = arguments[1]; } if (isWindowShown) { var _errorMsgContainer = $("#loginError"); _params = { "m": "loginS", "mytu": document[_loginFormName].HANDLE_ID.value, "mytp": document[_loginFormName].PASSWORD.value, "action_type": "sv", "action_value": document[_loginFormName].AD_ID.value }; _send(_params, function(data, stat, req){ if (typeof data.mResult != "undefined") { if (data.mResult.status == 1) { _errorMsgContainer.html(""); _loginWindow.hide(); _showHeader(); _populate(); _scan(); } else { _errorMsgContainer.html(data.mResult.sMsg); } } }); return false; } var _click = window.event; $.ajax({ url: "/find/login-popup", cache: false, dataType: "html", success: function(data, stat, req){ _loginWindow.html(data); document[_loginFormName].AD_ID.value = _adId; var _top = _click.pageY - _loginWindowTopOffset; var _left = _click.pageX - 80; _loginWindow.css("position", "absolute"); _loginWindow.css("top", (_top > 0 ? _top : 0) + "px"); _loginWindow.css("left", (_left > 0 ? _left : 0) + "px"); _loginWindow.find(".popupRt").click(function(){ _loginWindow.hide(); }); _loginWindow.show(); } }); }, manageListing: function(obj, listingId){ if (!this.isSignedIn()) { return this.login(false, listingId); } obj = $(obj); var _params = { "lid": listingId }; if (obj.hasClass(_unsavedClassName)) { _params.m = "saveL"; _send(_params, function(data, stat, req){ try { if (data.mResult.status == "-1") { return alert(data.mResult.sMsg); } obj.removeClass(_unsavedClassName).addClass(_savedClassName); } catch(e) { throw "Error occurred trying to save ad " + listingId + ": " + e.message; } }); } else { _params.m = "deleteL"; _send(_params, function(data, stat, req){ try { obj.removeClass(_savedClassName).addClass(_unsavedClassName); } catch(e) { throw "Error occurred trying to delete ad " + listingId + ": " + e.message; } }); } }, init: function(names){ try { _names = names; _authHeader = $("#mytLogoCntrLoggedIn"); _guestHeader = $("#mytLogoCntrNotLoggedIn"); _loginWindow = $("#mytLoginBox"); _loginFormName = "savevehiclesloginform"; _loginWindowTopOffset = window.location.href.search("search-results") != -1 ? 80 : 300; _showHeader(); _populate(); _scan(); } catch(e){ _handleException(e); alert("An error has occurred. Please try again later."); } } } }(); /******************************************************************************* * LEGACY STUFF *******************************************************************************/ var Savevehicle = function(adId, login, thisev){ return MyTrader.manageListing(thisev.target, adId); }; var savAd = function(){ return MyTrader.manageListing(arguments[0], arguments[1]); }; var performLogin = function(){ return MyTrader.login(true); }; var hideLogin = (function(){});