 function MakeStoreLinke(Dw_StoreId) { return "<a href='/Category.htm?Id=S" + Dw_StoreId + "' style='vertical-align:baseline;color:blue;" + (Dw_StoreId == gpCart.mDw_StoreId ? "background-color:white;" : "") + "'>&nbsp;" + Dw_StoreId + "&nbsp;</a>"; }; function ToSpanHtml(pStr_BackgroundColor, pStr_ForegroundColor, B_Bold, pStr) { return "<span style='" + (pStr_BackgroundColor ? "background-color:" + pStr_BackgroundColor + ";" : "") + (pStr_ForegroundColor ? "color:" + pStr_ForegroundColor + ";" : "") + (B_Bold ? "font-weight:bold;" : "") + "'>" + pStr + "</span>"; }; function ToRedHtml(pStr, B_Bold) { return ToSpanHtml("white", "Red", B_Bold, pStr); }; function StrToBool(pStr) { var B_Return; if(pStr == "0" || pStr.toLowerCase() == "false") B_Return = false; else B_Return = true; return B_Return; }; function Base10ToBase26A(Dw) { var pStr = ""; var Dw_Round = Dw; var Dw_Remain = 0; for(; ; ) { Dw_Remain = Dw_Round % 26; pStr = String.fromCharCode(0x41 + Dw_Remain) + pStr; Dw_Round = Math.floor(Dw_Round / 26); if(Dw_Round == 0) break; } return pStr; }; function SetIFrameLocation(pIFrame, pStr_Url) { if(gB_FalseIeTrueFireFox == 0) pIFrame.location.href = pStr_Url; else pIFrame.src = pStr_Url; } function SPrintF2(i) { var pStr; if(0 <= i && i < 10) pStr = "0" + i; else pStr = i; return pStr; }; function SPrintF2Base16(i) { var pStr; if(0 <= i && i < 16) pStr = "0" + i.toString(16); else pStr = i.toString(16); return pStr; }; function SPrintF3(i) { var pStr; if(0 <= i && i < 10) pStr = "00" + i; else if(10 <= i && i < 100) pStr = "0" + i; else pStr = i; return pStr; }; function IsNumber(Var) { return !IsNotNumber(Var); }; function IsNotNumber(Var) { return isNaN(Var); }; var CheckNumberType_DebuggerBreak = -3; var CheckNumberType_Alert = -2; var CheckNumberType_ReturnError = -1; var CheckNumberType_NullDefault0 = 0; function CheckNumber(Var, CheckNumberType, Dw_PositionNumber) { if(isNaN(Var)) { if(CheckNumberType == CheckNumberType_DebuggerBreak) { debugger; Var = null; } else if(CheckNumberType == CheckNumberType_Alert) { alert("number format error: " + Var); IfHttpThenAssertToServer(Dw_PositionNumber); Var = null; } else if(CheckNumberType == CheckNumberType_ReturnError) Var = -1; else if(CheckNumberType == null || CheckNumberType == 0) Var = 0; else debugger; } return Var; }; function ParseInt(pStr, CheckNumberType) { var Var = parseInt(pStr); return CheckNumber(Var, CheckNumberType); }; function ParseFloat(pStr, CheckNumberType) { var Var = parseFloat(pStr); return CheckNumber(Var, CheckNumberType); }; function ParseNumber(pStr, CheckNumberType) { var Var = parseFloat(pStr); return CheckNumber(Var, CheckNumberType); }; function IntDivIntToInt(Dw_0, Dw_1) { return (Dw_0 - Dw_0 % Dw_1)/Dw_1; }; function DegreeToRadians(d) { return d * Math.PI/180.0; }; String.prototype.Trim = function () { return this.replace(/^\s*/, "").replace(/\s*$/, ""); }; String.prototype.SetChar = function (i, Char) { return this.substr(0, i) + Char + this.substr(i+1); }; String.prototype.ShortBase16Encode = function() { var pStr = ""; for(var i = 0; i < this.length; i++) { pStr += SPrintF2Base16(this.charCodeAt(i)); } return pStr; }; String.prototype.Base16Encode = function() { var pStr = ""; if(this.length < 64) { pStr = this.ShortBase16Encode(); } else { var pArray = new Array(this.length); for(var Dw = 0; Dw < this.length; Dw++) { pArray[Dw] = this.charAt(Dw).ShortBase16Encode(); } pStr = pArray.join(""); } return pStr; }; String.prototype.Base16Decode = function() { var pStr = ""; for(var i = 0; i < this.length; i+=2) { pStr += String.fromCharCode(parseInt(this.substr(i, 2), 16)); } return pStr; }; var gpChar_Base16 = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']; var gpStr_Base16 = "0123456789ABCDEF"; var gpStr_Base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; function Base64Encode(input) { var output = ""; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0; do { chr1 = input.charCodeAt(i++); chr2 = input.charCodeAt(i++); chr3 = input.charCodeAt(i++); enc1 = chr1 >> 2; enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; if (isNaN(chr2)) { enc3 = enc4 = 64; } else if (isNaN(chr3)) { enc4 = 64; } output = output + gpStr_Base64.charAt(enc1) + gpStr_Base64.charAt(enc2) + gpStr_Base64.charAt(enc3) + gpStr_Base64.charAt(enc4); } while (i < input.length); return output; }; function Base64Decode(input) { var output = ""; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0; input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); do { enc1 = gpStr_Base64.indexOf(input.charAt(i++)); enc2 = gpStr_Base64.indexOf(input.charAt(i++)); enc3 = gpStr_Base64.indexOf(input.charAt(i++)); enc4 = gpStr_Base64.indexOf(input.charAt(i++)); chr1 = (enc1 << 2) | (enc2 >> 4); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr3 = ((enc3 & 3) << 6) | enc4; output = output + String.fromCharCode(chr1); if (enc3 != 64) { output = output + String.fromCharCode(chr2); } if (enc4 != 64) { output = output + String.fromCharCode(chr3); } } while (i < input.length); return output; }; String.prototype.ReplaceUnicodeSpace = function() { var pStr = this; for(var i = 0; i < this.length; i++) { if(0x80 <= this.charCodeAt(i)) pStr = pStr.SetChar(i, ' '); } return pStr; }; String.prototype.RemoveComa = function () { var pArray = this.split(","); var pStr_1 = ""; for(var i = 0; i < pArray.length; i++) { pStr_1 += pArray[i]; } return pStr_1; }; String.prototype.DotizeExcept09AZaz_ = function() { var pStr = this; for(var i = 0; i < this.length; i++) { var Char = this.charAt(i); if(('a' <= Char && Char <= 'z') || ('A' <= Char && Char <= 'Z') || ('0' <= Char && Char <= '9') || Char == '_') { } else { pStr = pStr.SetChar(i, '.'); } } return pStr; }; String.prototype.DotizeExcept09AZaz = function() { var pStr = this; for(var i = 0; i < this.length; i++) { var Char = this.charAt(i); if(('a' <= Char && Char <= 'z') || ('A' <= Char && Char <= 'Z') || ('0' <= Char && Char <= '9')) { } else { pStr = pStr.SetChar(i, '.'); } } return pStr; }; String.prototype.SpacizeExcept09AZaz = function() { var pStr = this; for(var i = 0; i < this.length; i++) { var Char = this.charAt(i); if(('a' <= Char && Char <= 'z') || ('A' <= Char && Char <= 'Z') || ('0' <= Char && Char <= '9')) { } else { pStr = pStr.SetChar(i, ' '); } } var pArray = pStr.split(" "); var pStr_1 = ""; for(var i = 0; i < pArray.length; i++) { if(pArray[i] != "") pStr_1 += " " + pArray[i]; } pStr_1 = pStr_1.substr(1); return pStr_1; }; String.prototype.LeaveOnly09AZaz = function() { var pStr = ""; for(var i = 0; i < this.length; i++) { var Char = this.charAt(i); if(('a' <= Char && Char <= 'z') || ('A' <= Char && Char <= 'Z') || ('0' <= Char && Char <= '9')) { pStr += Char; } } return pStr; }; String.prototype.RemoveQuotationMark = function() { var pStr = this; for(var i = 0; i < this.length; i++) { if(this.charAt(i) == "\"") pStr = pStr.SetChar(i, ' '); } return pStr; }; String.prototype.ReplaceDqTo2Sq = function() { var pStr = ""; for(var i = 0; i < this.length; i++) { var pStr_Char = this.charAt(i); pStr += (pStr_Char == "\"" ? "''" : pStr_Char); } return pStr; }; String.prototype.TrimCutAddSpace = function(i_ToCount, B_0Left_1Right) { var pStr; var pStr_Content = this.Trim(); var i_Length = pStr_Content.length; if(i_Length < i_ToCount) { var pStr_Space = " "; AssertPop(i_ToCount <= pStr_Space.length, 311); if(B_0Left_1Right == 0) { pStr = pStr_Space.substr(0, i_ToCount - i_Length) + pStr_Content; } else { pStr = pStr_Content + pStr_Space.substr(0, i_ToCount - i_Length); } } else { pStr = pStr_Content.substr(0, i_ToCount); } return pStr; }; String.prototype.EscapeHtml = function() { return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/\'/g,'&#39;').replace(/\"/g,'&quot;'); }; String.prototype.EscapeSqDq = function() { return this.replace(/\'/g, '&#39;').replace(/\"/g, '&quot;'); }; String.prototype.UnEscapeHtml = function() { return this.replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>').replace(/&#39;/g,'\'').replace(/&quot;/g,'\"'); }; String.prototype.LineEndToBr = function() { var pStr; if (gB_FalseIeTrueFireFox == false) pStr = this.replace(/\r\n/g, "<br/>\r\n"); else pStr = this.replace(/\n/g, "<br/>\r\n"); return pStr; }; function MonthDayCount(Dw_Year, Dw_0BaseMonth) { return 32 - new Date(Dw_Year, Dw_0BaseMonth, 32).getDate(); }; Date.prototype.AddYMDhmsmmm = function(i_Year, i_Month, i_Day, i_Hour, i_Minute, i_Second, i_Millisecond) { if(i_Year) this.setFullYear(this.getFullYear() + i_Year); if(i_Month) this.setMonth(this.getMonth() + i_Month); if(i_Day) this.setDate(this.getDate() + i_Day); if(i_Hour) this.setHours(this.getHours() + i_Hour); if(i_Minute) this.setMinutes(this.getMinutes() + i_Minute); if(i_Second) this.setSeconds(this.getSeconds() + i_Second); if(i_Millisecond) this.setMilliseconds(this.getMilliseconds() + i_Millisecond); }; Date.prototype.AddYMD = function(i_Year, i_Month, i_Day) { this.AddYMDhmsmmm(i_Year, i_Month, i_Day); }; Date.prototype.Addhms = function(i_Hour, i_Minute, i_Second) { this.AddYMDhmsmmm(0, 0, 0, i_Hour, i_Minute, i_Second); }; Date.prototype.Addmmm = function(i_Millisecond) { this.AddYMDhmsmmm(0, 0, 0, 0, 0, 0, i_Millisecond); }; Date.prototype.SPrintYYYYMM = function(B_Utc) { var pStr; if(B_Utc) pStr = "" + this.getUTCFullYear() + SPrintF2(this.getUTCMonth()+1); else pStr = "" + this.getFullYear() + SPrintF2(this.getMonth()+1); return pStr; }; Date.prototype.SPrintYYYYMMDD = function(B_Utc) { var pStr = this.SPrintYYYYMM(B_Utc); if(B_Utc) pStr += SPrintF2(this.getUTCDate()); else pStr += SPrintF2(this.getDate()); return pStr; }; Date.prototype.SPrinthhmmss = function(B_Utc) { var pStr; if(B_Utc) pStr = "" + SPrintF2(this.getUTCHours()) + SPrintF2(this.getUTCMinutes()) + SPrintF2(this.getUTCSeconds()); else pStr = "" + SPrintF2(this.getHours()) + SPrintF2(this.getMinutes()) + SPrintF2(this.getSeconds()); return pStr; }; Date.prototype.SPrinthhmmssmmm = function(B_Utc) { var pStr = this.SPrinthhmmss(B_Utc); if(B_Utc) pStr += SPrintF3(this.getUTCMilliseconds()); else pStr += SPrintF3(this.getMilliseconds()); return pStr; }; Date.prototype.SPrintYYYYMMDDhhmmss = function(B_Utc) { return this.SPrintYYYYMMDD(B_Utc) + this.SPrinthhmmss(B_Utc); }; Date.prototype.SPrintYYYYMMDDhhmmssmmm = function(B_Utc) { return this.SPrintYYYYMMDD(B_Utc) + this.SPrinthhmmssmmm(B_Utc); }; function CheckEmailAddressFormat(pStr_EmailAddress) { var pStr = ""; if(5 <= pStr_EmailAddress.length && pStr_EmailAddress.indexOf("@") != -1) { } else pStr = "Email address format error: " + pStr_EmailAddress; return pStr; }; function HttpAllocateOpen(pStr_Method, pStr_Url, B_New, pArray_Headers) { var pHttpDoc; if (window.XMLHttpRequest && gDw_Protocol_0Local_1Http == 1) { pHttpDoc = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { pHttpDoc = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { alert("Page load failed\nPlease enable \"Script ActiveX controls marked safe for scripting\" and\n\"Run ActiveX controls and plug-ins\""); } } if(pHttpDoc) { var pStr_New = ""; if(B_New) { pStr_New = (pStr_Url.indexOf("?") == -1 ? "?" : "&") + "out=" + (new Date()).SPrintYYYYMMDDhhmmssmmm(); } pHttpDoc.open(pStr_Method, pStr_Url + pStr_New, false); if(pArray_Headers) { for(var Dw = 0; Dw < pArray_Headers.length; Dw++) { pHttpDoc.setRequestHeader(pArray_Headers[Dw][0], pArray_Headers[Dw][1]); } } } return pHttpDoc; }; function HttpRequest0(pHttpDoc, pStr_Out, Dw_ResponseAs_0Text1Bianry2Xml3Stream) { var p_Response; pHttpDoc.send(pStr_Out); if(pHttpDoc.readyState == 4 && pHttpDoc.status == 200) { if(Dw_ResponseAs_0Text1Bianry2Xml3Stream == null || Dw_ResponseAs_0Text1Bianry2Xml3Stream == 0) { p_Response = pHttpDoc.responseText; } else if(Dw_ResponseAs_0Text1Bianry2Xml3Stream == 1) p_Response = pHttpDoc.responseBody; else if(Dw_ResponseAs_0Text1Bianry2Xml3Stream == 2) p_Response = pHttpDoc.responseXML; else if(Dw_ResponseAs_0Text1Bianry2Xml3Stream == 3) p_Response = pHttpDoc.responseStream; else AssertPop(false, 572); } return p_Response; }; function HttpGet(pStr_Url, B_New, Dw_ResponseAs_0Text1Bianry2Xml3Stream) { var p_Response; var pHttpDoc = HttpAllocateOpen("GET", pStr_Url, B_New); if(pHttpDoc) { p_Response = HttpRequest0(pHttpDoc, null, Dw_ResponseAs_0Text1Bianry2Xml3Stream); } pHttpDoc = null; return p_Response; }; function HttpPost(pStr_Url, B_New, pArray_Headers, pStr_PostContent, Var_ContentType_0Form_1Xml_2SoapXml_Str, Dw_ResponseAs_0Text1Bianry2Xml3Stream, pArray_ResponseText) { var p_Response; var pHttpDoc = HttpAllocateOpen("POST", pStr_Url, B_New, pArray_Headers); if(pHttpDoc) { if(IsNumber(Var_ContentType_0Form_1Xml_2SoapXml_Str)) { var pArray = ["application/x-www-form-urlencoded", "text/xml", "application/soap+xml; charset=utf-8"]; AssertPop(Var_ContentType_0Form_1Xml_2SoapXml_Str < pArray.length, 596); Var_ContentType_0Form_1Xml_2SoapXml_Str = pArray[Var_ContentType_0Form_1Xml_2SoapXml_Str]; } pHttpDoc.setRequestHeader("Content-type", Var_ContentType_0Form_1Xml_2SoapXml_Str); pHttpDoc.setRequestHeader("Content-length", pStr_PostContent.length); pHttpDoc.setRequestHeader("Connection", "close"); p_Response = HttpRequest0(pHttpDoc, pStr_PostContent, Dw_ResponseAs_0Text1Bianry2Xml3Stream); } if(pHttpDoc.status != 200 && pArray_ResponseText) pArray_ResponseText[0] = pHttpDoc.responseText; pHttpDoc = null; return p_Response; }; function GetHttpServerTime(B_Utc) { var pDate; var pHttpDoc = HttpAllocateOpen("GET", "/Empty.htm?Cmd=ServerTimer", true); if(pHttpDoc != null) { pStr_Doc = HttpRequest0(pHttpDoc); var pStr_Date = pHttpDoc.getResponseHeader("Date"); pDate = new Date(pStr_Date); } pHttpDoc = null; return pDate; }; function HttpGetText(pStr_Url, B_New) { return HttpGet(pStr_Url, B_New, 0); }; function HttpGetBinary(pStr_Url, B_New) { return HttpGet(pStr_Url, B_New, 1); }; function HttpPostFormText(pStr_Url, B_New, pArray_Headers, pStr_PostContent) { return HttpPost(pStr_Url, B_New, pArray_Headers, pStr_PostContent, 0); }; function ReadOrHttpGetFile(pStr_FullPathFromRoot) { var pStr; if(gDw_Protocol_0Local_1Http == 0) pStr = ReadFile("..\\" + pStr_FullPathFromRoot); else pStr = HttpGetText(pStr_FullPathFromRoot, true); return pStr; }; function IfHttpThenAssertToServer(Dw_PositionNumber) { if(gDw_Protocol_0Local_1Http == 1) pStr_International = HttpGetText("Empty.htm?Cmd=AssertPop&FunctionName=" + Dw_PositionNumber + "&Agent=" + navigator.userAgent.DotizeExcept09AZaz_() + "&Cookie=" + document.cookie, true); }; function Assert(B) { if(!B && !gB_FalseIeTrueFireFox) Debug.writeln("Assert false"); }; function AssertPop(B, Dw_PositionNumber) { if(!B) { if(!gB_AssertPopSent) { IfHttpThenAssertToServer(Dw_PositionNumber); gB_AssertPopSent = true; } alert("Assert false"); } }; function AssertDebug(B) { if(!B) debugger; }; function WritePre(pStr) { document.write("<Pre>" + pStr + "</Pre>"); }; function GetHtmlAbsolutePos(pNode, pArray) { var i_X = 0; var i_Y = 0; for(; pNode; pNode = pNode.offsetParent) { if(!isNaN(pNode.offsetLeft)) { i_X += pNode.offsetLeft; i_Y += pNode.offsetTop; if(pNode.offsetParent && pNode.offsetParent.offsetParent) { var i_ScrollLeft = pNode.offsetParent.scrollLeft; if(!isNaN(i_ScrollLeft)) i_X -= i_ScrollLeft; var i_ScrollTop = pNode.offsetParent.scrollLeft; if(!isNaN(i_ScrollTop)) i_Y -= i_ScrollTop; } } } pArray[0] = i_X; pArray[1] = i_Y; }; function CMenu() { var mi_Level; var mi_Index; var mpStr_Name; var mpStr_CharId; var mDw_AllItemCount; var mDw_DirectItemCount; var mpArray_Children; var mpMenu_Parent; var mp_Html; var mp_ChildrenHtml; }; CMenu.prototype.Add = function(pMenu) { if(this.mpArray_Children == null) this.mpArray_Children = new Array(); pMenu.mpMenu_Parent = this; pMenu.mi_Index = this.mpArray_Children.length; this.mpArray_Children[pMenu.mi_Index] = pMenu; }; CMenu.prototype.GetPath = function(Dw_StoreId) { var pStr = ""; var pMenu = this; for(; pMenu != gpArray_Menu[Dw_StoreId]; pMenu = pMenu.mpMenu_Parent) { pStr = ".mpArray_Children[" + pMenu.mi_Index + "]" + pStr; } return "gpArray_Menu[" + Dw_StoreId + "]" + pStr; }; CMenu.prototype.GetId = function(pStr_Prefix, Dw_StoreId) { var pStr = ""; var pMenu = this; for(; pMenu != gpArray_Menu[Dw_StoreId]; pMenu = pMenu.mpMenu_Parent) { pStr = "" + pMenu.mi_Index + pStr; } return pStr_Prefix + "0" + pStr; }; CMenu.prototype.GetCharIdToRoot = function() { var pStr_CharId = ""; for(var pMenu = this; pMenu; pMenu = pMenu.mpMenu_Parent) { pStr_CharId = pMenu.mpStr_CharId + "_" + pStr_CharId; } return pStr_CharId.substr(0, pStr_CharId.length - 1); }; CMenu.prototype.GetArrayToRoot = function(pArray) { for(var pMenu = this; pMenu; pMenu = pMenu.mpMenu_Parent) { pArray[pArray.length] = pMenu; } }; CMenu.prototype.ConfirmNoDuplicatedChildrenCharId = function() { if(this.mpArray_Children != null) { for(var i = 0; i < this.mpArray_Children.length; i++) { var pMenu = this.mpArray_Children[i]; pMenu.ConfirmNoDuplicatedChildrenCharId(); if(0 < i) AssertPop(this.mpArray_Children[i-1].mpStr_CharId != pMenu.mpStr_CharId, 673); } } }; CMenu.prototype.MakeSiteMapThis = function() { return this.mDw_DirectItemCount ? "<a href='/Category.htm?Id=" + this.GetCharIdToRoot() + "'>" + this.mpStr_Name + "</a>" : this.mpStr_Name; }; CMenu.prototype.MakeSiteMapTree = function(B_TempRoot, Dw_StoreId) { var pStr = ""; if(B_TempRoot) { pStr = (this == gpArray_Menu[Dw_StoreId] ? "Categories:" : "Sub Categories:"); } else pStr = this.MakeSiteMapThis(); pStr = "<LI>" + pStr; if(this.mpArray_Children != null) { pStr += "<UL>"; for(var i = 0; i < this.mpArray_Children.length; i++) { var pMenu = this.mpArray_Children[i]; pStr += pMenu.MakeSiteMapTree(false, Dw_StoreId); } pStr += "</UL>"; } pStr += "</LI>"; return pStr; }; CMenu.prototype.FindByPath = function(pArray_Field, i_Level) { var pMenu_Return = null; if(pArray_Field[i_Level] == this.mpStr_CharId) { if(i_Level + 1 < pArray_Field.length) { if(this.mpArray_Children != null) { for(var i = 0; i < this.mpArray_Children.length; i++) { var pMenu = this.mpArray_Children[i]; pMenu_Return = pMenu.FindByPath(pArray_Field, i_Level + 1); if(pMenu_Return != null) break; } } } else if(i_Level + 1 == pArray_Field.length) { pMenu_Return = this; } else debugger; } return pMenu_Return; }; CMenu.prototype.CreateSelfHtml = function(Dw_StoreId) { var pStr_Id = this.GetId("Div_Menu", Dw_StoreId); var pElement; var pStr_Cursor; var pStr_OnClick = ""; var pStr_A0 = ""; var pStr_A1 = ""; { pStr_Cursor = "pointer"; pStr_OnClick = "onClick=\"location.href='/Category.htm?Id=" + this.GetCharIdToRoot() + "'\""; } if(gB_FalseIeTrueFireFox == false) { pElement = document.createElement("<div id=\"" + pStr_Id + "\" class=\"MenuDivMouseOut\" style=\"cursor:" + pStr_Cursor + ";\" " + pStr_OnClick + " onmouseenter=\"" + this.GetPath(Dw_StoreId) + ".MouseOver(this)\" onMouseLeave=\"" + this.GetPath(Dw_StoreId) + ".MouseOut(this, event)\">"); } else { pElement = document.createElement("div"); pElement.setAttribute("id", pStr_Id); pElement.className = "MenuDivMouseOut"; pElement.style.cursor = pStr_Cursor; if(pStr_OnClick != "") pElement.setAttribute("onClick", "location.href=\"/Category.htm?Id=" + this.GetCharIdToRoot() + "\""); pElement.setAttribute("onMouseOver", this.GetPath(Dw_StoreId) + ".MouseOver(this)"); pElement.setAttribute("onMouseOut", this.GetPath(Dw_StoreId) + ".MouseOut(this, event)"); } var pStr_1 = "<span style=\"float:left;cursor:" + pStr_Cursor + ";\">" + this.mpStr_Name + "</span>"; if(this.mpArray_Children != null) pElement.innerHTML = pStr_A0 + pStr_1 + "<span style=\"float:right;cursor:" + pStr_Cursor + ";\">&gt;</span>" + pStr_A1; else pElement.innerHTML = pStr_A0 + pStr_1 + pStr_A1; Span_MenuTemp.innerHTML = this.mpStr_Name; return pElement; }; CMenu.prototype.CreateChildrenHtml = function(B_Root, Dw_StoreId) { var pStr_Id = this.GetId("Div_MenuChildren", Dw_StoreId); var pElement_Children; if(gB_FalseIeTrueFireFox == false) { pElement_Children = document.createElement("<div id=\"" + pStr_Id + "\" z-index=7>"); } else { pElement_Children = document.createElement("div"); pElement_Children.setAttribute("id", pStr_Id); } pElement_Children.mpMenu_ChildrenOwer = this; this.mp_ChildrenHtml = pElement_Children; if(!B_Root) { pElement_Children.style.position = "absolute"; } var i_WidthMax = 0; for(var i = 0; i < this.mpArray_Children.length; i++) { var pMenu = this.mpArray_Children[i]; var pElement = pMenu.CreateSelfHtml(Dw_StoreId); pElement.mpMenu = pMenu; pMenu.mp_Html = pElement; if(i_WidthMax < Span_MenuTemp.offsetWidth) i_WidthMax = Span_MenuTemp.offsetWidth; this.mp_ChildrenHtml.appendChild(pElement); } var Dw_LeftWidth = (i_WidthMax < 120 ? 120 : i_WidthMax) + (i_WidthMax < 240 ? 40 : 0); pElement_Children.style.width = Dw_LeftWidth; if(this == gpArray_Menu[Dw_StoreId]) gDw_LeftWidth = Dw_LeftWidth; return pElement_Children; }; var gElement; CMenu.prototype.HideChildrenHtmlIfExist = function() { if(this.mp_ChildrenHtml != null) this.mp_ChildrenHtml.style.visibility = "hidden"; this.mp_Html.className = "MenuDivMouseOut"; }; function GetLevel(pFields) { var i_Return = 0; for(var i = 0; i < pFields.length; i++) { var pStr = pFields[i]; if(pStr == "") { i_Return++; } else break; } return i_Return; }; CMenu.prototype.MouseOver = function(p_Div) { var Dw_StoreId = gpCart.mDw_StoreId; p_Div.className = "MenuDivMouseOver"; if(this.mpArray_Children != null) { if(this.mp_ChildrenHtml == null) { var pElement_Children = this.CreateChildrenHtml(false, Dw_StoreId); document.body.appendChild(pElement_Children); } if(this.mpMenu_Parent == gpArray_Menu[Dw_StoreId]) { var pArray = new Array(); GetHtmlAbsolutePos(this.mp_Html, pArray); this.mp_ChildrenHtml.style.left = pArray[0] + this.mp_Html.offsetWidth; this.mp_ChildrenHtml.style.top = pArray[1]; } else { var pStr; this.mp_ChildrenHtml.style.left = pStr = parseInt(this.mpMenu_Parent.mp_ChildrenHtml.style.left) + this.mp_Html.offsetWidth - 1; this.mp_ChildrenHtml.style.top = pStr = parseInt(this.mpMenu_Parent.mp_ChildrenHtml.style.top) + this.mp_Html.offsetTop; } this.mp_ChildrenHtml.style.visibility = "visible"; } }; CMenu.prototype.MouseOut = function(p_Div, pEvent) { if (!pEvent) pEvent = window.event; var Dw_StoreId = gpCart.mDw_StoreId; var pElement_To; if (gB_FalseIeTrueFireFox == false) { pElement_To = pEvent.toElement; } else { pElement_To = pEvent.relatedTarget; } if (pElement_To) { var pMenu_To = pElement_To.mpMenu; if (pMenu_To == null) { if (pElement_To.tagName.toLowerCase() == "span") { gElement = pElement_To; pMenu_To = pElement_To.parentNode.mpMenu; Assert(pMenu_To != null); } } if (pMenu_To == null) { for (var pMenu = this; pMenu != gpArray_Menu[Dw_StoreId]; pMenu = pMenu.mpMenu_Parent) { pMenu.HideChildrenHtmlIfExist(); } } else { if (pMenu_To.mpMenu_Parent == this) { } else { this.HideChildrenHtmlIfExist(); if (this.mpMenu_Parent != gpArray_Menu[Dw_StoreId] && pMenu_To.mpMenu_Parent == this.mpMenu_Parent.mpMenu_Parent) { if (gElement != null) { gElement = null; } this.mpMenu_Parent.HideChildrenHtmlIfExist(); } } } } gElement = null; }; function MakeMenuItem(pArray_Lines) { var pMenu = null; for(; pArray_Lines.mi_LineIndex < pArray_Lines.length; ) { var pStr_Line = pArray_Lines[pArray_Lines.mi_LineIndex++]; if(pStr_Line.Trim() != "") { AssertPop(pStr_Line.indexOf("_") == -1, 934); var pFields = pStr_Line.split("\t"); if(1 <= pFields.length) { pMenu = new CMenu(); pMenu.mi_Level = GetLevel(pFields); pMenu.mpStr_Name = pFields[pMenu.mi_Level]; pMenu.mpStr_CharId = pMenu.mpStr_Name.DotizeExcept09AZaz(); pMenu.mDw_AllItemCount = parseInt(pFields[pMenu.mi_Level + 1]); pMenu.mDw_DirectItemCount = parseInt(pFields[pMenu.mi_Level + 2]); break; } } } return pMenu; }; function LoadMenuTreeIfNot(Dw_StoreId) { if(!gpArray_Menu[Dw_StoreId]) { var pStr_Menu = ReadOrHttpGetFile("zCategory/S" + Dw_StoreId + ".CategoryTree.txt"); AssertPop(pStr_Menu); var pArray_Lines = pStr_Menu.split(gB_FalseIeTrueFireFox ? "\n" : "\r\n"); pArray_Lines.mi_LineIndex = 0; var pMenu_Root = MakeMenuItem(pArray_Lines); var pMenu_Current = pMenu_Root; for(var pMenu; pMenu = MakeMenuItem(pArray_Lines); ) { if(pMenu_Current.mi_Level + 1 < pMenu.mi_Level) debugger; else if(pMenu_Current.mi_Level + 1 == pMenu.mi_Level) { } else { for(; pMenu.mi_Level <= pMenu_Current.mi_Level; pMenu_Current = pMenu_Current.mpMenu_Parent) { } } pMenu_Current.Add(pMenu); pMenu_Current = pMenu; } pMenu_Root.ConfirmNoDuplicatedChildrenCharId(); gpArray_Menu[Dw_StoreId] = pMenu_Root; } }; function MenuArrayToDirectory(pArray, B_1stIsProduct, Dw_StoreId) { var pStr = ""; for(var Dw = pArray.length - 2; 1 <= Dw; Dw--) { var pMenu = pArray[Dw]; pStr += " <span style='font-weight:normal;'>&gt;&gt;</span> <a href='/Category.htm?Id=" + pMenu.GetCharIdToRoot() + "'>" + pMenu.mpStr_Name + "</a>"; } if(1 < pArray.length) pStr = "<a href='/Category.htm?Id=S" + Dw_StoreId + "'>Store " + Dw_StoreId + "</a>" + pStr + (" <span style='font-weight:normal;'>&gt;&gt;</span> " + (B_1stIsProduct ? pArray[0] : pArray[0].mpStr_Name)); else pStr = "Store " + Dw_StoreId; return pStr; }; function GetCollectionCount(p_Collection) { var i_Count = 0; for(pStr_Key in p_Collection) { i_Count++; } return i_Count; }; var gpStatePos = [ ["AK", 61.3850, -152.2683 ], ["AL", 32.7990, -86.8073 ], ["AR", 34.9513, -92.3809 ], ["AZ", 33.7712, -111.3877 ], ["CA", 36.1700, -119.7462 ], ["CO", 39.0646, -105.3272 ], ["CT", 41.5834, -72.7622 ], ["DC", 38.8964, -77.0262 ], ["DE", 39.3498, -75.5148 ], ["FL", 27.8333, -81.7170 ], ["GA", 32.9866, -83.6487 ], ["HI", 21.1098, -157.5311 ], ["IA", 42.0046, -93.2140 ], ["ID", 44.2394, -114.5103 ], ["IL", 40.3363, -89.0022 ], ["IN", 39.8647, -86.2604 ], ["KS", 38.5111, -96.8005 ], ["KY", 37.6690, -84.6514 ], ["LA", 31.1801, -91.8749 ], ["MA", 42.2373, -71.5314 ], ["MD", 39.0724, -76.7902 ], ["ME", 44.6074, -69.3977 ], ["MI", 43.3504, -84.5603 ], ["MN", 45.7326, -93.9196 ], ["MO", 38.4623, -92.3020 ], ["MS", 32.7673, -89.6812 ], ["MT", 46.9048, -110.3261 ], ["NC", 35.6411, -79.8431 ], ["ND", 47.5362, -99.7930 ], ["NE", 41.1289, -98.2883 ], ["NH", 43.4108, -71.5653 ], ["NJ", 40.3140, -74.5089 ], ["NM", 34.8375, -106.2371 ], ["NV", 38.4199, -117.1219 ], ["NY", 42.1497, -74.9384 ], ["OH", 40.3736, -82.7755 ], ["OK", 35.5376, -96.9247 ], ["OR", 44.5672, -122.1269 ], ["PA", 40.5773, -77.2640 ], ["PR", 18.2766, -66.3350 ], ["RI", 41.6772, -71.5101 ], ["SC", 33.8191, -80.9066 ], ["SD", 44.2853, -99.4632 ], ["TN", 35.7449, -86.7489 ], ["TX", 31.1060, -97.6475 ], ["UT", 40.1135, -111.8535 ], ["VA", 37.7680, -78.2057 ], ["VT", 44.0407, -72.7093 ], ["WA", 47.3917, -121.5708 ], ["WI", 44.2563, -89.6385 ], ["WV", 38.4680, -80.9696 ], ["WY", 42.7475, -107.2085 ], ]; function EarthSurfaceDistance(d_Latitude0, d_Longitude0, d_Latitude1, d_Longitude1, Byte_KMN) { var d_R = 6371; var d_LatitudeDiff = DegreeToRadians(d_Latitude1 - d_Latitude0); var d_LongitudeDiff = DegreeToRadians(d_Longitude1 - d_Longitude0); var d_A = Math.sin(d_LatitudeDiff/2) * Math.sin(d_LatitudeDiff/2) + Math.cos(DegreeToRadians(d_Latitude0)) * Math.cos(DegreeToRadians(d_Latitude1)) * Math.sin(d_LongitudeDiff/2) * Math.sin(d_LongitudeDiff/2); var d_C = 2 * Math.atan(Math.sqrt(d_A) / Math.sqrt(1 - d_A)); var d_D = d_R * d_C; if(Byte_KMN == 'K') { } else if(Byte_KMN == 'M') { d_D /= 1.609; } else if(Byte_KMN == 'N') { d_D /= 1.852; } else d_D = -1; return d_D; }; function GetStatePos(pStr_State) { var pStatePos; for(var Dw = 0; Dw < gpStatePos.length; Dw++) { var p = gpStatePos[Dw]; if(p[0] == pStr_State) { pStatePos = p; break; } } return pStatePos; }; function UsaDistance(pStr_State0, pStr_State1, Byte_KMN) { var pStatePos_0 = GetStatePos(pStr_State0); AssertPop(pStatePos_0, 1102); var pStatePos_1 = GetStatePos(pStr_State1); AssertPop(pStatePos_1, 1103); return EarthSurfaceDistance(pStatePos_0[1], pStatePos_0[2], pStatePos_1[1], pStatePos_1[2], Byte_KMN); }; function CZipProperty() { }; function GetZipProperty(pStr_Zip) { var pZipProperty; var pStr_0 = HttpGetText("/zzZip/" + pStr_Zip.substr(0, 2) + ".txt", false); if(pStr_0 != null) { var pLines = pStr_0.split('\r\n'); for(i = 0; i < pLines.length; i++) { var pFields = pLines[i].split('\t'); if(1 < pFields.length) { if(pFields[0] == pStr_Zip) { pZipProperty = new CZipProperty(); var Dw = 0; pZipProperty.mpStr_Zip = pFields[Dw++]; pZipProperty.mpStr_State = pFields[Dw++]; pZipProperty.mB_Rural = StrToBool(pFields[Dw++]); pZipProperty.mB_HiGroundRural = StrToBool(pFields[Dw++]); pZipProperty.mB_AkGroundRural = StrToBool(pFields[Dw++]); pZipProperty.mB_AkExpressRural = StrToBool(pFields[Dw++]); break; } } } } return pZipProperty; }; function IsUspsOnlyState(pStr) { return pStr == "AA" || pStr == "AE" || pStr == "AP" || pStr == "AS" || pStr == "FM" || pStr == "GU" || pStr == "MH" || pStr == "MP" || pStr == "PW" || pStr == "VI"; }; function IsAkHiPr(pStr) { return pStr == "AK" || pStr == "HI" || pStr == "PR"; }; function IsNon48States(pStr) { return IsUspsOnlyState(pStr) || IsAkHiPr(pStr); }; function Is48States(pStr) { return !IsNon48States(pStr); }; var gpFedexZone = [ [ 0, 2, 4], [ 150, 3, 4], [ 300, 4, 5], [ 600, 5, 6], [1000, 6, 7], [1400, 7, 8], [1800, 8, 8], [9999, 9, 8], ]; function TransformArray(pArray, pStr_Append, d_Add) { var pArray_Return = new Array(); for(var Dw = 0; Dw < pArray.length; Dw++) { pArray_Return[pArray_Return.length] = [pArray[Dw][0] + pStr_Append, pArray[Dw][1] + d_Add]; } return pArray_Return; }; function CombineArray(pArray_0, pArray_1) { var pArray_Return = new Array(); for(var Dw = 0; Dw < pArray_0.length; Dw++) { pArray_Return[pArray_Return.length] = [pArray_0[Dw][0], pArray_0[Dw][1], pArray_0[Dw][2]]; } for(var Dw = 0; Dw < pArray_1.length; Dw++) { pArray_Return[pArray_Return.length] = [pArray_1[Dw][0], pArray_1[Dw][1], pArray_1[Dw][2]]; } return pArray_Return; }; function CalculateShippingRates(Dw_StoreId, Dw_PackageTotalWeight, Dw_PackagePieceCount, Dw_PackageMaxItemWeight, Dw_PackageOversizeCount, Dw_PalletCount, B_Usa, pStr_ToZip, B_PoBox, pArray_UsaStateOut, B_BuyerFreightAccount) { var pArray; var Dw_FedexMaxWeightPerPackage = 30; var Dw_UspsMaxWeightPerPackage = 30; var Dw_Fpc = Dw_PackagePieceCount; var Dw_Upc = Dw_PackagePieceCount; if(Dw_FedexMaxWeightPerPackage <= Dw_PackageTotalWeight / Dw_PackagePieceCount) Dw_Fpc = Math.ceil(Dw_PackageTotalWeight / Dw_FedexMaxWeightPerPackage); if(Dw_UspsMaxWeightPerPackage <= Dw_PackageTotalWeight / Dw_PackagePieceCount) Dw_Upc = Math.ceil(Dw_PackageTotalWeight / Dw_UspsMaxWeightPerPackage); var Dw_Fwpp = Math.floor(Dw_PackageTotalWeight / Dw_Fpc); var Dw_Uwpp = Math.floor(Dw_PackageTotalWeight / Dw_Upc); var d_FURatio = Dw_Fwpp / Dw_Uwpp; var d_LeadHandlingPpF = Math.max(5, Dw_Fwpp * 0.25); var d_GroundLeadCostPpF = LoadTableRate(Dw_StoreId, TextArea_Ground, Dw_Fwpp, 7) + d_LeadHandlingPpF; var d_3DayLeadCostPpF = LoadTableRate(Dw_StoreId, TextArea_3Day, Dw_Fwpp, 7) + d_LeadHandlingPpF; var d_2DayLeadCostPpF = LoadTableRate(Dw_StoreId, TextArea_2Day, Dw_Fwpp, 7) + d_LeadHandlingPpF; var d_1DayLeadCostPpF = LoadTableRate(Dw_StoreId, TextArea_1DayStandard, Dw_Fwpp, 7) + d_LeadHandlingPpF; var d_GroundLeadCostPpU = d_GroundLeadCostPpF / d_FURatio; var d_3DayLeadCostPpU = d_3DayLeadCostPpF / d_FURatio; var d_2DayLeadCostPpU = d_2DayLeadCostPpF / d_FURatio; var d_1DayLeadCostPpU = d_1DayLeadCostPpF / d_FURatio; var d_PapwerworkPpF = 10 / Dw_Fpc; if (B_Usa) { var pZipProperty_To = GetZipProperty(pStr_ToZip); if(pZipProperty_To) { AssertPop(pZipProperty_To.mpStr_State != "PR", 1215); pArray = new Array(); var B_ToUsps = false; var pStr_ToState = pZipProperty_To.mpStr_State; pArray_UsaStateOut[0] = pStr_ToState; var B_48State = Is48States(pStr_ToState); gpCart.mpStr_ToPlace = (B_PoBox ? "PO-Box/Army" : "street-address") + ", " + pStr_ToState + " " + pStr_ToZip; if(!IsUspsOnlyState(pStr_ToState)) { if(B_PoBox) B_ToUsps = true; else { var d_SurchargeGround = 0; var d_SurchargeAir = 0; if(pZipProperty_To.mB_Rural) d_SurchargeGround = d_SurchargeAir = 2.8 + 0.9; if(pZipProperty_To.mB_HiGroundRural) d_SurchargeGround += 11; if(pZipProperty_To.mB_AkGroundRural) { if(Dw_Fwpp < 70) d_SurchargeGround += 30; else d_SurchargeGround += 100; } if(pZipProperty_To.mB_AkExpressRural) d_SurchargeAir += 15; var Dw_GroundZone = 0, Dw_3DayZone, Dw_2DayZone, Dw_1DayStandardZone, Dw_1DayPriorityZone, Dw_1DayFirstZone; if(B_48State) { var d_FarestDistance = 0; for(var Dw = 0; Dw < gpStoreConfig[Dw_StoreId].mpArray_Location.length; Dw++) { var pLocation = gpStoreConfig[Dw_StoreId].mpArray_Location[Dw]; if(pLocation.mB_Shipable) { if(pLocation.mpStr_Zip == "00000") { d_FarestDistance = 3000; } else { var d = Math.max(500, UsaDistance(pLocation.mpStr_State2Char, pZipProperty_To.mpStr_State, "M")); if(d_FarestDistance < d) { d_FarestDistance = d; } } } } if(d_FarestDistance == 0) d_FarestDistance = 3000; for(var Dw = 0; Dw < gpFedexZone.length - 1; Dw++) { var p_Line = gpFedexZone[Dw]; if(p_Line[0] <= d_FarestDistance && d_FarestDistance < gpFedexZone[Dw+1][0]) { Dw_GroundZone = Dw_3DayZone = Dw_2DayZone = Dw_1DayStandardZone = Dw_1DayPriorityZone = Dw_1DayFirstZone = p_Line[2] - 1; break; } } AssertPop(Dw_GroundZone != 0, 1277); } else if(pStr_ToState == "AK" || pStr_ToState == "HI") { Dw_GroundZone = 8; Dw_3DayZone = 7; Dw_2DayZone = 9; Dw_1DayStandardZone = 8; Dw_1DayPriorityZone = 9; Dw_1DayFirstZone = 7; B_ToUsps = true; } else B_ToUsps = true; if(pStr_ToState == "PR") { pArray[pArray.length] = ["5-9 days", LoadTableRate(Dw_StoreId, TextArea_Ground, Dw_Fwpp, 8) + d_SurchargeGround]; pArray[pArray.length] = ["4-5 days", LoadTableRate(Dw_StoreId, TextArea_PrAir, Dw_Fwpp, 2) + d_SurchargeAir]; pArray[pArray.length] = ["2-3 days", LoadTableRate(Dw_StoreId, TextArea_PrAir, Dw_Fwpp, 1) + d_SurchargeAir]; } else if(B_48State || gpStoreConfig[Dw_StoreId].mB_FedexHiAk) { pArray[pArray.length] = ["4-8 days", LoadTableRate(Dw_StoreId, TextArea_Ground, Dw_Fwpp, Dw_GroundZone, B_48State) + d_SurchargeGround]; if(B_48State) pArray[pArray.length] = ["3-4 days", LoadTableRate(Dw_StoreId, TextArea_3Day, Dw_Fwpp, Dw_3DayZone, B_48State) + d_SurchargeAir]; pArray[pArray.length] = ["2 days ", LoadTableRate(Dw_StoreId, TextArea_2Day, Dw_Fwpp, Dw_2DayZone, B_48State) + d_SurchargeAir]; pArray[pArray.length] = ["1 day PM", LoadTableRate(Dw_StoreId, TextArea_1DayStandard, Dw_Fwpp, Dw_1DayStandardZone, B_48State) + d_SurchargeAir]; pArray[pArray.length] = ["1 day AM", LoadTableRate(Dw_StoreId, TextArea_1DayFirst, Dw_Fwpp, Dw_1DayFirstZone, B_48State) + d_SurchargeAir]; pArray[pArray.length] = ["2 days Saturday delivery", LoadTableRate(Dw_StoreId, TextArea_2Day, Dw_Fwpp, Dw_2DayZone, B_48State) + d_SurchargeAir + 29]; pArray[pArray.length] = ["1 day Saturday delivery", LoadTableRate(Dw_StoreId, TextArea_1DayStandard, Dw_Fwpp, Dw_1DayStandardZone, B_48State) + d_SurchargeAir + 29]; } if(gB_IpLocalHost) pArray[pArray.length] = ["Use buyer's freight account", 0, true]; } } else B_ToUsps = true; if(B_ToUsps) { var pStr_UspsParcelDays = (B_48State ? "9" : "12"); var pStr_GroundLeadTime = "", pStr_3DayLeadTime = "", pStr_2DayLeadTime = "", pStr_1DayLeadTime = ""; var d_Lead = 0; if(gpStoreConfig[Dw_StoreId].mB_UspsUsa) { pArray[pArray.length] = ["4-" + pStr_UspsParcelDays + " days USPS", LoadTableRate(Dw_StoreId, TextArea_Parcel, Dw_Uwpp, 7)]; pArray[pArray.length] = ["3-4 days USPS", LoadTableRate(Dw_StoreId, TextArea_Priority, Dw_Uwpp, 7)]; pArray[pArray.length] = ["1-2 days USPS", LoadTableRate(Dw_StoreId, TextArea_Express, Dw_Uwpp, 7)]; } else { pArray[pArray.length] = ["4-7 days lead-time, 4-" + pStr_UspsParcelDays + " days USPS", LoadTableRate(Dw_StoreId, TextArea_Parcel, Dw_Uwpp, 7) + d_GroundLeadCostPpU]; pArray[pArray.length] = ["4-7 days lead-time, 3-4 days USPS", LoadTableRate(Dw_StoreId, TextArea_Priority, Dw_Uwpp, 7) + d_GroundLeadCostPpU]; pArray[pArray.length] = ["2-3 days lead-time, 3-4 days USPS", LoadTableRate(Dw_StoreId, TextArea_Priority, Dw_Uwpp, 7) + d_1DayLeadCostPpU]; pArray[pArray.length] = ["2-3 days lead-time, 1-2 days USPS", LoadTableRate(Dw_StoreId, TextArea_Express, Dw_Uwpp, 7) + d_1DayLeadCostPpU]; } } } } else { gpCart.mpStr_ToPlace = gpCart.mSelect_Country.options[gpCart.mi_CountryIndex].innerHTML; var pUspsCountry = gpArray_UspsCountry[gpCart.mi_CountryIndex]; var pArray_0 = new Array(); var pArray_1 = new Array(); var pArray_2 = new Array(); var pArray_3 = new Array(); var pArray_4 = new Array(); if(Dw_PackageMaxItemWeight < pUspsCountry.md_PmiMaxWeight - 8) { var i_0 = pArray_0.length; pArray_0[pArray_0.length] = ["8-13 days EMS int'l", LoadTableRate(Dw_StoreId, TextArea_Pmi, Dw_Uwpp, pUspsCountry.mi_PmiGroupIndex)*1.10]; pArray_1[pArray_1.length] = ["4-7 days lead-time, " + pArray_0[i_0][0], pArray_0[i_0][1] + d_GroundLeadCostPpU]; } if(Dw_PackageMaxItemWeight < pUspsCountry.md_EmiMaxWeight - 8) { var i_0 = pArray_0.length; pArray_0[pArray_0.length] = ["4-9 days EMS int'l", LoadTableRate(Dw_StoreId, TextArea_Emi, Dw_Uwpp, pUspsCountry.mi_EmiGroupIndex) * 1.10]; pArray_1[pArray_1.length] = ["4-7 days lead-time, " + pArray_0[i_0][0], pArray_0[i_0][1] + d_GroundLeadCostPpU]; pArray_1[pArray_1.length] = ["2-3 days lead-time, " + pArray_0[i_0][0], pArray_0[i_0][1] + d_1DayLeadCostPpU]; } pArray_2[pArray_2.length] = ["3-5 days most likely Fedex/UPS/DHL int'l", LoadTableRate(Dw_StoreId, TextArea_Gxg, Dw_Uwpp, pUspsCountry.mi_GxgGroupIndex)*d_FURatio*0.60]; pArray_2[pArray_2.length] = ["2-4 days most likely Fedex/UPS/DHL int'l", LoadTableRate(Dw_StoreId, TextArea_Gxg, Dw_Uwpp, pUspsCountry.mi_GxgGroupIndex)*d_FURatio*0.75]; pArray_3[pArray_3.length] = ["2-3 days lead-time, " + pArray_2[0][0], pArray_2[0][1] + d_1DayLeadCostPpF]; pArray_3[pArray_3.length] = ["2-3 days lead-time, " + pArray_2[1][0], pArray_2[1][1] + d_1DayLeadCostPpF]; { pArray_4[pArray_4.length] = ["4-7 days lead-time, then use buyer's freight account for int'l", d_GroundLeadCostPpF + d_PapwerworkPpF, true]; pArray_4[pArray_4.length] = ["2-3 days lead-time, then use buyer's freight account for int'l", d_1DayLeadCostPpF + d_PapwerworkPpF, true]; } var pArray_UspsReal = TransformArray(gpStoreConfig[Dw_StoreId].mB_UspsInternational ? pArray_0 : pArray_1, ", Real customs value", 0); var pArray_UspsLow = TransformArray(pArray_1, ", Low customs value", 5); var pArray_FedexReal = TransformArray(gpStoreConfig[Dw_StoreId].mB_FedexInternational ? pArray_2 : pArray_3, ", Real customs value", 0); var pArray_FedexLow = TransformArray(pArray_3, ", Low customs value", 10); pArray = CombineArray(CombineArray(CombineArray(CombineArray(pArray_UspsReal, pArray_UspsLow), pArray_FedexReal), pArray_FedexLow), pArray_4); } if(pArray && (1 < Dw_Fpc || 1 < Dw_Upc)) { for(var Dw = 0; Dw < pArray.length; Dw++) { if (pArray[Dw][0].indexOf("USPS") == -1 && pArray[Dw][0].indexOf("EMS") == -1) pArray[Dw][1] *= Dw_Fpc; else pArray[Dw][1] *= Dw_Upc; } } if (Dw_PackageOversizeCount) { for (var Dw = 0; Dw < pArray.length; Dw++) { pArray[Dw][1] += 50 * Dw_PackageOversizeCount; } } return pArray; }; function LoadTableRate(Dw_StoreId, TextArea, Dw_LineIndex, Dw_ColumnIndex, B_48States, Dw_CountPerPallet) { if(B_48States == undefined) B_48States = true; if(Dw_CountPerPallet == undefined) Dw_CountPerPallet = 0; var d_Return = 0; var pLines = TextArea.value.split(gB_FalseIeTrueFireFox ? "\n" : "\r\n"); AssertPop(Dw_LineIndex < pLines.length, 1388); var Dw_1lbStartIndex; if(pLines[1].charAt(0) == "1") Dw_1lbStartIndex = 1; else if(pLines[2].charAt(0) == "1") Dw_1lbStartIndex = 2; else AssertPop(false, 1395); var pFields = pLines[Dw_1lbStartIndex+Dw_LineIndex].Trim().split('\t'); AssertPop(3 <= pFields.length, 1397); d_Return = ParseFloat(pFields[Dw_ColumnIndex].substr(1), CheckNumberType_Alert, 1550); if(d_Return != -1) { if(TextArea == TextArea_Ground) d_Return *= (1 + gd_GroundRiseFuelSurcharge - (B_48States ? gpStoreConfig[Dw_StoreId].md_48StatesGroundDiscount : gpStoreConfig[Dw_StoreId].md_HiAkGroundDiscount)); else if(TextArea == TextArea_3Day || TextArea == TextArea_2Day || TextArea == TextArea_1DayStandard || TextArea == TextArea_1DayFirst || TextArea == TextArea_PrAir) d_Return *= (1 + gd_AirRiseFuelSurcharge - (B_48States ? gpStoreConfig[Dw_StoreId].md_48StatesAirDiscount : gpStoreConfig[Dw_StoreId].md_HiAkAirDiscount)); d_Return += 2.7; if(Dw_StoreId == 3) d_Return += Dw_LineIndex * 0.25; } return d_Return; }; var gpInsurance = [ [1.80, 50 ], [2.05, 100], [2.45, 200], [4.60, 300], [5.50, 400], [6.40, 500], [7.30, 600] ]; function GetUspsInsurance(d_0) { var d_Return = 0; var i = 0; for(; i < gpInsurance.length; i++) { if(d_0 <= gpInsurance[i][1]) { d_Return = gpInsurance[i][0]; break; } } if(i == gpInsurance.length) { d_Return = 7.3 + (d_0 - 600)*0.01; } return d_Return; }; function CUspsCountry() { var mpStr_Country; var mi_GxgGroupIndex; var mi_EmiGroupIndex; var md_EmiMaxWeight; var mi_PmiGroupIndex; var md_PmiMaxWeight; var md_PmiInsuranceLimit; var mi_FciGroupIndex; var mi_IpaIsal5GroupIndex; }; function CUspsInternationalRate() { this.mpd = new Array(10); }; function LoadUspsCountriesRatesIfNot() { if(gpArray_UspsCountry) { } else { gpArray_UspsCountry = new Array(); var pUspsCountry = new CUspsCountry(); pUspsCountry.mpStr_Country = "United States"; gpArray_UspsCountry[gpArray_UspsCountry.length] = pUspsCountry; var pLines = TextArea_CountryGroup.value.split(gB_FalseIeTrueFireFox ? "\n" : "\r\n"); for(i = 1; i < pLines.length; i++) { var pFields = pLines[i].Trim().split('\t'); if(9 <= pFields.length && pFields[0] != "Marshall Islands") { var i_Tab = 0; var pUspsCountry = new CUspsCountry(); pUspsCountry.mpStr_Country = pFields[i_Tab++]; pUspsCountry.mi_GxgGroupIndex = ParseInt(pFields[i_Tab++], CheckNumberType_ReturnError, 1632); if(pUspsCountry.mi_GxgGroupIndex == -1) pUspsCountry.mi_GxgGroupIndex = 5; pUspsCountry.mi_EmiGroupIndex = ParseInt(pFields[i_Tab++], CheckNumberType_ReturnError, 1633); if(pUspsCountry.mi_EmiGroupIndex == -1) pUspsCountry.mi_EmiGroupIndex = 8; pUspsCountry.md_EmiMaxWeight = ParseFloat(pFields[i_Tab++], CheckNumberType_ReturnError, 1634); pUspsCountry.mi_PmiGroupIndex = ParseInt(pFields[i_Tab++], CheckNumberType_ReturnError, 1635); if(pUspsCountry.mi_PmiGroupIndex == -1) pUspsCountry.mi_PmiGroupIndex = 8; pUspsCountry.md_PmiMaxWeight = ParseFloat(pFields[i_Tab++], CheckNumberType_ReturnError, 1637); pUspsCountry.md_PmiInsuranceLimit = ParseFloat(pFields[i_Tab++], CheckNumberType_ReturnError, 1638); pUspsCountry.mi_FciGroupIndex = ParseInt(pFields[i_Tab++], CheckNumberType_ReturnError, 1639); pUspsCountry.mi_IpaIsal5GroupIndex = ParseInt(pFields[i_Tab++], CheckNumberType_ReturnError, 1640); gpArray_UspsCountry[gpArray_UspsCountry.length] = pUspsCountry; } } } } var ItemCondition_New = 0; var ItemCondition_UpcRemoved = 1; var ItemCondition_Refurbished = 2; var ItemCondition_OpenBox = 3; var ItemCondition_Used = 4; var gpItemCondition = [ [ItemCondition_New, "n", "New"], [ItemCondition_UpcRemoved, "u", "New, UPC removed from the box for rebate purpose"], [ItemCondition_Refurbished, "r", "Mfr refurbished"], [ItemCondition_OpenBox, "o", "Open box, working condition"], [ItemCondition_Used, "U", "Used, working condition"], ]; function CItem() { var md_Weight; var mpd_Price; var mpArray_Inventory; var mpStr_Key; var mpStr_Mpn; var mpStr_Brand; var mpStr_Name; var mpStr_FullKey; var mDw_InventoryAll; var mDw_MinSpecialOrderQuantity; this.mpd_Price = new Array(); }; CItem.prototype.To = function() { var pStr_Inventory = ""; for (var Dw = 0; Dw < gpStoreConfig[this.mDw_StoreId].mDw_WareHouseCount; Dw++) { pStr_Inventory += this.mpArray_Inventory[Dw] + "\t"; } var pStr = this.md_Weight.toFixed(2) + "\t" + this.md_Length.toFixed(1) + "\t" + this.md_Width.toFixed(1) + "\t" + this.md_Height.toFixed(1) + "\t" + this.mB_Photo + "\t" + this.mB_Spec + "\t" + this.mB_DropShip + "\t" + this.mItemCondition + "\t" + this.mpd_Price[0].toFixed(2) + "\t" + this.mpd_Price[1].toFixed(2) + "\t" + this.mpd_Price[2].toFixed(2) + "\t" + this.mpd_Price[3].toFixed(2) + "\t" + this.md_PriceCost.toFixed(2) + "\t" + pStr_Inventory + this.mpStr_Key + "\t" + this.mpStr_Mpn + "\t" + this.mpStr_Brand + "\t" + this.mpStr_Name; return pStr; }; CItem.prototype.From = function(pFields, B_ItemPartial, Dw_StoreId, pStr_CategoryKey, d_DiWeightWeightFactor, B_FragileCategory) { this.mDw_StoreId = Dw_StoreId; var Dw = 0; this.md_Weight = parseFloat(pFields[Dw++]); this.md_Length = parseFloat(pFields[Dw++]); this.md_Width = parseFloat(pFields[Dw++]); this.md_Height = parseFloat(pFields[Dw++]); this.mB_Photo = parseInt(pFields[Dw++]); this.mB_Spec = parseInt(pFields[Dw++]); this.mB_DropShip = parseInt(pFields[Dw++]); this.mItemCondition = parseInt(pFields[Dw++]); this.mpd_Price[0] = parseFloat(pFields[Dw++]); this.mpd_Price[1] = parseFloat(pFields[Dw++]); this.mpd_Price[2] = parseFloat(pFields[Dw++]); this.mpd_Price[3] = parseFloat(pFields[Dw++]); this.md_PriceCost = parseFloat(pFields[Dw++]); this.mpArray_Inventory = new Array(); this.mDw_InventoryAll = 0; for (var Dw_0 = 0; Dw_0 < gpStoreConfig[Dw_StoreId].mDw_WareHouseCount; Dw_0++) { this.mpArray_Inventory[Dw_0] = parseInt(pFields[Dw++]); this.mDw_InventoryAll += this.mpArray_Inventory[Dw_0]; } if(gpStr_Ip.indexOf("74.125") == 0) {this.mpArray_Inventory[0]++; this.mDw_InventoryAll++;} this.mpStr_Key = pFields[Dw++].Trim(); this.mpStr_Mpn = pFields[Dw++].Trim(); if(this.mpStr_Mpn == "") this.mpStr_Mpn = "Unknown"; this.mpStr_Brand = pFields[Dw++].Trim(); this.mpStr_Name = pFields[Dw++]; this.mpStr_FullKey = pStr_CategoryKey + "___" + this.mpStr_Key; if(!B_ItemPartial) { this.md_DimensionalWeight = 0; this.mB_PackageOversize = 0; this.mB_Pallet = false; var d_L2W2H = this.md_Length + (this.md_Width + this.md_Height) * 2; if (d_L2W2H) { this.md_DimensionalWeight = this.md_Length * this.md_Width * this.md_Height / 166; if (this.md_Weight < 135 && d_L2W2H <= 76) ; else if (this.md_Weight < 38 && (76 <= d_L2W2H && d_L2W2H <= 98)) this.md_DimensionalWeight = Math.max(this.md_DimensionalWeight, 38); else if (this.md_Weight < 60 && (98 <= d_L2W2H && d_L2W2H <= 116)) this.md_DimensionalWeight = Math.max(this.md_DimensionalWeight, 60); else if (this.md_Weight < 115) { if (B_FragileCategory && 70 <= this.md_Weight) this.mB_Pallet = true; else { this.md_DimensionalWeight = Math.max(this.md_DimensionalWeight, Math.max(this.md_Weight, 90)); if (d_L2W2H <= 116) ; else if (d_L2W2H <= 135) this.mB_PackageOversize = true; else this.mB_Pallet = true; } } else { this.mB_Pallet = true; } } else { if (this.md_Weight < 115) ; else this.mB_Pallet = true; } if (this.mB_Pallet) { this.md_BillWeight = Math.max(this.md_Weight, this.md_DimensionalWeight) * 1.8; } else { this.md_BillWeight = Math.max(this.md_Weight, this.md_DimensionalWeight); if (this.md_BillWeight == 0) ; else if (this.md_BillWeight <= 0.05) this.md_BillWeight = 0.1; else if (this.md_BillWeight <= 0.10) this.md_BillWeight = 0.2; else if (this.md_BillWeight <= 0.30) this.md_BillWeight = 0.4; else if (this.md_BillWeight < 5) this.md_BillWeight *= 1.1; else if (this.md_BillWeight < 20) this.md_BillWeight *= 1.15; else if (this.md_BillWeight < 40) this.md_BillWeight *= 1.2; else if (this.md_BillWeight < 70) this.md_BillWeight *= 1.25; else this.md_BillWeight *= 1.3; if(d_DiWeightWeightFactor) this.md_BillWeight *= (1 + d_DiWeightWeightFactor); } } }; function MakeDirKey(Dw_StoreId, pStr_Key, pStr_SlashForwardOrBackward) { var pStr = "zS" + Dw_StoreId + "Product" + pStr_SlashForwardOrBackward + pStr_Key.substr(0, gpStoreConfig[Dw_StoreId].mDw_DirCount) + pStr_SlashForwardOrBackward + pStr_Key; return pStr; }; CItem.prototype.MakeDirKey = function(pStr_SlashForwardOrBackward) { var pStr = MakeDirKey(this.mDw_StoreId, this.mpStr_Key, pStr_SlashForwardOrBackward); var i_StoreId; return pStr; }; CItem.prototype.GetWeightString = function(B_QuestionMark) { var pStr_Return = this.md_Weight ? this.md_Weight : (B_QuestionMark ? "?" : "Unknown"); return pStr_Return; }; CItem.prototype.GetDimensionalWeightString = function(B_QuestionMark) { var pStr_Return = this.md_DimensionalWeight ? this.md_DimensionalWeight.toFixed(2) : (B_QuestionMark ? "?" : "Unknown"); return pStr_Return; }; var gpRateRate = [ [1, "Credit Card"], [0.98, "Non-Credit-Card"] ]; CItem.prototype.GetPriceString = function(Dw_0Google_1Other) { var pStr_Return = ""; var Dw = 0; var d_RateRate = gpRateRate[Dw_0Google_1Other][0]; pStr_Return += " $" + (this.mpd_Price[Dw++]*d_RateRate).toFixed(2) + "/1"; pStr_Return += ", $" + (this.mpd_Price[Dw++]*d_RateRate).toFixed(2) + "/5"; pStr_Return += ", $" + (this.mpd_Price[Dw++]*d_RateRate).toFixed(2) + "/20"; pStr_Return += ", $" + (this.mpd_Price[Dw++]*d_RateRate).toFixed(2) + "/100"; return pStr_Return; }; CItem.prototype.GetPriceByQuantity = function(i_Quantity) { var d_Return; if(i_Quantity < 5) d_Return = this.mpd_Price[0]; else if(i_Quantity < 20) d_Return = this.mpd_Price[1]; else if(i_Quantity < 100) d_Return = this.mpd_Price[2]; else d_Return = this.mpd_Price[3]; return d_Return; }; CItem.prototype.GetAvailabilityLocation = function(B_Internal) { var pStr_Return = ""; for(var Dw = 0; Dw < gpStoreConfig[this.mDw_StoreId].mDw_WareHouseCount; Dw++) { var i_StockCount = this.mpArray_Inventory[Dw]; if(i_StockCount) pStr_Return += (pStr_Return.length ? "," : "") + i_StockCount + "/" + (B_Internal ? gpStoreConfig[this.mDw_StoreId].mpArray_Location[Dw].mpStr_City : Base10ToBase26A(Dw)); } return pStr_Return; }; function CCategory() { this.mpCategory_Children = {}; this.mpItem_Children = {}; }; CCategory.prototype.GetOrLoad = function(pStr_FullKey, pStr_CategoryKey, pStr_ItemKey, B_ItemPartial, pStr_FileContent) { var p_Return; if(pStr_FullKey) { var pFields = pStr_FullKey.split("___"); pStr_CategoryKey = pFields[0]; pStr_ItemKey = pFields[1]; } else ; var pArray_Path = pStr_CategoryKey.split("_"); var Dw_StoreId = ParseInt(pStr_CategoryKey.substr(1, pStr_CategoryKey.indexOf("_")), CheckNumberType_DebuggerBreak); LoadMenuTreeIfNot(Dw_StoreId); var pMenu = gpArray_Menu[Dw_StoreId].FindByPath(pArray_Path, 0); if(pMenu && !this.mpCategory_Children[pStr_CategoryKey]) { var pCategory = new CCategory(); pCategory.mpStr_Key = pStr_CategoryKey; if(!pStr_FileContent) { pStr_FileContent = ReadOrHttpGetFile(gpStr_CategoryDir + pStr_CategoryKey + ".txt"); } if(pStr_FileContent) { var pStr_CategoryKeyLowerCase = pStr_CategoryKey.toLowerCase(); var B_FragileCategory = (pStr_CategoryKeyLowerCase.indexOf("monitor") != -1 || pStr_CategoryKeyLowerCase.indexOf("display") != -1 || pStr_CategoryKeyLowerCase.indexOf("television") != -1); var d_DiWeightWeightFactor = 0; pArray_DiWeightWeightFactor = gpDiWeightExtraFactor[Dw_StoreId]; for(var Dw = 0; Dw < pArray_DiWeightWeightFactor.length - 1; Dw++) { if(pStr_CategoryKey.indexOf(pArray_DiWeightWeightFactor[Dw].DotizeExcept09AZaz()) != -1) d_DiWeightWeightFactor = pArray_DiWeightWeightFactor[pArray_DiWeightWeightFactor.length-1]; } var pLines = pStr_FileContent.split('\r\n'); for(i = 0; i < pLines.length; i++) { if(pLines[i].charAt(0) == '/') break; var pFields = pLines[i].split('\t'); if(6 <= pFields.length) { var pItem = new CItem(); pItem.From(pFields, B_ItemPartial, Dw_StoreId, pStr_CategoryKey, d_DiWeightWeightFactor, B_FragileCategory); pCategory.mpItem_Children[pItem.mpStr_Key] = pItem; pItem.mpCategory_Parent = pCategory; } } } gpCategory.mpCategory_Children[pStr_CategoryKey] = pCategory; } p_Return = gpCategory.mpCategory_Children[pStr_CategoryKey]; if(p_Return && pStr_ItemKey) p_Return = p_Return.mpItem_Children[pStr_ItemKey]; return p_Return; }; CCategory.prototype.GetOrLoadItemWideRange = function (pStr_FullKey) { var pItem = this.GetOrLoad(pStr_FullKey); if(!pItem) { var pArray = pStr_FullKey.split("_"); if(5 <= pArray.length) { var Dw = parseInt(pArray[pArray.length - 4]); if(IsNumber(Dw)) { pArray[pArray.length - 4] = Dw + 1; var pItem = this.GetOrLoad(ArrayToString(pArray, "_")); if(!pItem) { pArray[pArray.length - 4] = Dw - 1; pItem = this.GetOrLoad(ArrayToString(pArray, "_")); if(!pItem) { pArray[pArray.length - 4] = Dw + 2; pItem = this.GetOrLoad(ArrayToString(pArray, "_")); if(!pItem) { pArray[pArray.length - 4] = Dw - 2; pItem = this.GetOrLoad(ArrayToString(pArray, "_")); if(!pItem) { pArray[pArray.length - 4] = Dw + 3; pItem = this.GetOrLoad(ArrayToString(pArray, "_")); if(!pItem) { } } } } } if(pItem) { pItem.mB_Moved = true; pItem.mpStr_FullKey = ArrayToString(pArray, "_"); } } } } return pItem; }; function LoadCategoryPageItems(pStr_Category, B_Icon) { Table_Items.style.visibility = "visible"; var pCategory = gpCategory.GetOrLoad(null, pStr_Category, null, true); if(pCategory) { var i_Lines = 0; var pStr_LastBrand; for(pStr_Key in pCategory.mpItem_Children) { var pItem = pCategory.mpItem_Children[pStr_Key]; var pCell; var pStr_Path; if(pStr_LastBrand == null || pStr_LastBrand.toUpperCase() != pItem.mpStr_Brand.toUpperCase()) { var pRow = Table_Items.insertRow(-1); pRow.className = "BrandTr"; pCell = pRow.insertCell(-1); pCell.colSpan = 3; pCell.innerHTML = pItem.mpStr_Brand; pStr_LastBrand = pItem.mpStr_Brand; } var pRow = Table_Items.insertRow(-1); pRow.className = "CategoryTr" + i_Lines % 2; pCell = pRow.insertCell(-1); pCell.innerHTML = (B_Icon ? "<img src=\"/" + pItem.MakeDirKey("/") + "/Icon.jpg\" border=0 />" : pItem.mpStr_Key); pCell.noWrap = true; pCell = pRow.insertCell(-1); pCell.innerHTML = pItem.mpStr_Mpn; pCell.style.paddingLeft = "5px"; pCell = pRow.insertCell(-1); pCell.innerHTML = "<a href=\"/Item.htm?Id=" + pItem.mpStr_FullKey + "\">" + pItem.mpStr_Name + "</a>"; pCell.align="left"; pCell.style.paddingLeft = "5px"; pCell = pRow.insertCell(-1); pCell.noWrap = true; var pStr = "$" + pItem.mpd_Price[0].toFixed(2); if(pItem.mDw_InventoryAll == 0) { pStr += " [OutStk]"; } pCell.innerHTML = pStr; i_Lines++; } if(i_Lines == 0) { Span_NoProduct.innerHTML = "<br/>Currently, there is no product found in this category."; } } }; function LoadCategoryPage() { var Dw_StoreId = gpCart.mDw_StoreId; var pStr_Category = decodeURI(document.URL).split("Id=")[1]; if(!pStr_Category) pStr_Category = "S" + Dw_StoreId; var pArray_Path = pStr_Category.split("_"); var pMenu = gpArray_Menu[Dw_StoreId].FindByPath(pArray_Path, 0); if(pMenu) { var pArray_Menu = new Array(); pMenu.GetArrayToRoot(pArray_Menu); var pStr = MenuArrayToDirectory(pArray_Menu, false, Dw_StoreId); Div_Directory.innerHTML = pStr; if(pMenu.mpArray_Children) Span_SiteMap.innerHTML = pMenu.MakeSiteMapTree(true, Dw_StoreId); if(pMenu.mDw_DirectItemCount) { LoadCategoryPageItems(pStr_Category, false); } } document.title = gpStr_SiteName + " - " + pStr_Category; }; function LoadItemPage0(pStr_Url, pItem) { }; function ArrayToString(pArray, pStr_Seperator) { var pStr = ""; var Dw = 0; for(; Dw < pArray.length - 1; Dw++) { pStr += pArray[Dw] + pStr_Seperator; } if(0 < pArray.length) { pStr += pArray[Dw]; } return pStr; }; function LoadItemPage() { var Dw_StoreId = gpCart.mDw_StoreId; var pStr_FullKey = decodeURI(document.URL).split("Id=")[1]; var pItem = gpCategory.GetOrLoadItemWideRange(pStr_FullKey); if(pItem && pItem.mB_Moved) window.location = "Item.htm?Id=" + pItem.mpStr_FullKey; else if(pItem) { var pArray_Path = pItem.mpCategory_Parent.mpStr_Key.split("_"); var pMenu = gpArray_Menu[Dw_StoreId].FindByPath(pArray_Path, 0); if(pMenu) { var pArray_Menu = new Array(); pArray_Menu.push(pItem.mpStr_Key); pMenu.GetArrayToRoot(pArray_Menu); var pStr = MenuArrayToDirectory(pArray_Menu, true, Dw_StoreId); Div_Directory.innerHTML = pStr; } gpItem = pItem; Span_Mpn.innerHTML = "MPN: " + pItem.mpStr_Mpn; Span_Sku.innerHTML = "SKU: " + pItem.mpStr_Key; Span_Mfr.innerHTML = pItem.mpStr_Brand; Span_Dimention.innerHTML = pItem.md_Length && pItem.md_Width && pItem.md_Height ? pItem.md_Length + "x" + pItem.md_Width + "x" + pItem.md_Height : "Unknown"; Span_Weight.innerHTML = pItem.GetWeightString(); Span_DiWeight.innerHTML = pItem.GetDimensionalWeightString(); AssertPop(0 < pItem.mpd_Price[0], 1813); for(var Dw = 0; Dw < gpRateRate.length; Dw++) { var pRow = Table_Price.insertRow(-1); pRow.insertCell(-1).innerHTML = gpRateRate[Dw][1] + ", Price/Quantity: &nbsp;&nbsp;"; pRow.insertCell(-1).innerHTML = pItem.GetPriceString(Dw); } Span_Condition.innerHTML = gpItemCondition[pItem.mItemCondition][2]; if(pItem.mDw_InventoryAll == 0) { if(pItem.mB_DropShip) { Span_Inventory.innerHTML = "<span style='color:Red;font-weight:bolderx;font-size:150%'>Out of stock</span><br/><span style='background-color:Yellow;color:green;font-weight:bolder;font-size:150%'>Special Order</span> 2-5 days lead-time usually if vendor has it in stock. <br/>"; Form_This.Button_Add.value = "Quote shipping, generate quotation, or special order"; } else { Span_Inventory.innerHTML = "<span style='color:Red;font-weight:bolderx;font-size:150%'>Out of stock</span><br/>"; Form_This.Button_Add.value = "Quote shipping, generate quotation, or back order"; } } else { if(pItem.mDw_InventoryAll != 99999) { Span_Inventory.innerHTML = "Availability/Location: " + pItem.GetAvailabilityLocation() + "<br/>"; } } if(gB_IpLocalHost) { Span_Inventory.innerHTML += "<button onclick='gpItem.SetOutOfStock();'>SetOutOfStock</button><br/>"; } Span_SpecialOrder.style.display = "none"; Span_ProductName.innerHTML = pItem.mpStr_Name; var pStr_DirKey = pItem.MakeDirKey("/"); if(pItem.mB_Spec) { var pStr_SpecUrl = "/" + pStr_DirKey + "/Spec.htm?s=" + pItem.mDw_InventoryAll + "&Key=" + pItem.mpStr_FullKey + "&mpn=" + pItem.mpStr_Mpn; var pStr_Spec0 = HttpGetText(pStr_SpecUrl, true); if(pStr_Spec0 && 10 <= pStr_Spec0.length) Span_Spec.innerHTML = pStr_Spec0; } if(pItem.mB_Photo) Span_Image.innerHTML = "<img src=\"/" + pStr_DirKey + "/00.jpg\" border=0 /><P/>"; } else { Span_ItemAll.innerHTML = "This product can't be found or no longer exists."; } document.title = gpStr_SiteName + " - " + pStr_FullKey; }; function MakeCartGcName(i_Index, pStr_Name) { return "<input type=hidden name=item_name_" + i_Index + " value=\"" + pStr_Name + "\"/>\r\n"; }; function MakeCartGcDescription(i_Index, pStr_Description) { return "<input type=hidden name=item_description_" + i_Index + " value=\"" + pStr_Description + "\"/>\r\n"; }; function MakeCartGcPrice(i_Index, d_Price, B_Editable) { return "<input type=hidden name=item_price_" + i_Index + " value='" + d_Price.toFixed(2) + "'/>\r\n"; }; function MakeCartGcQuantity(i_Index, i_Quantity, B_Editable) { return "<input type=" + (B_Editable ? "Text size=4" : "hidden") + " name=item_quantity_" + i_Index + " value='" + i_Quantity + "'/>\r\n"; }; function MakeCartGcCurrency(i_Index) { return "<input type=hidden name=item_currency_" + i_Index + " value='USD'>\r\n"; }; function MakeCartItem(i_Index, pStr_Name, pStr_Description, d_Price, i_Quantity, pStr_PrivateItemData) { gpStr_CartLines += "<tr><td>" + pStr_Name + "<br/>" + pStr_Description + "</td><td align=right>$" + d_Price.toFixed(2) + "</td><td align=center>" + i_Quantity + "</td><td align=right>$" + (d_Price * i_Quantity).toFixed(2) + "</td></tr>\r\n"; i_Index++; var pStr_PrivateItemDataLine = "<input type=hidden name=shopping-cart.items.item-" + i_Index + ".merchant-private-item-data value='" + pStr_PrivateItemData + "'>\r\n"; var pStr_Result = MakeCartGcName(i_Index, pStr_Name) + MakeCartGcDescription(i_Index, pStr_Description) + MakeCartGcPrice(i_Index, d_Price) + MakeCartGcQuantity(i_Index, i_Quantity) + MakeCartGcCurrency(i_Index) + pStr_PrivateItemDataLine; return pStr_Result; }; function MakeCartCharge(i_Index, pStr_Name, pStr_Description, d_Price) { gpStr_CartLines += "<tr><td align=right>" + pStr_Name + pStr_Description + "</td><td colspan=3 align=right>$" + d_Price.toFixed(2) + "</td></tr>\r\n"; i_Index++; var pStr_QuantityLine = "<input type=Text name=item_quantity_" + i_Index + " size=4 value='1'/>\r\n"; var pStr_Result = MakeCartGcName(i_Index, pStr_Name) + MakeCartGcDescription(i_Index, pStr_Description) + MakeCartGcPrice(i_Index, d_Price) + MakeCartGcQuantity(i_Index, 1) + MakeCartGcCurrency(i_Index); return pStr_Result; }; function MakeCartSingleLineNote(i_Index, pStr_Name, pStr_Description) { gpStr_CartLines += "<tr><td>" + pStr_Name + pStr_Description + "</td><td colspan=3 align=right>&nbsp;</td></tr>\r\n"; i_Index++; var pStr_Result = MakeCartGcName(i_Index, pStr_Name) + MakeCartGcDescription(i_Index, pStr_Description) + MakeCartGcPrice(i_Index, 0) + MakeCartGcQuantity(i_Index, 1) + MakeCartGcCurrency(i_Index); return pStr_Result; }; function MakeCartMultiLineNote(i_Index, pStr_Description) { gpStr_CartLines += "<tr><td>" + pStr_Description.EscapeHtml().LineEndToBr() + "</td><td colspan=3 align=right>&nbsp;</td></tr>\r\n"; i_Index++; var pStr_Result = "<input type=hidden name=shopping-cart.buyer-messages.special-instructions-0 value='" + pStr_Description.EscapeSqDq() + "' />"; return pStr_Result; }; function MakeTrackingNumberLink(pStr_TrackingNumber) { return "<a href='http://www.google.com/search?q=" + pStr_TrackingNumber + "' target=_blank>" + pStr_TrackingNumber + "</a>"; }; function ShowHideTip(pSpanTip, pStr, pEvent) { if(!pEvent) pEvent = window.event.x; pSpanTip.style.left = pEvent.clientX; pSpanTip.style.top = pEvent.clientY - 10; pSpanTip.style.visibility = pStr; }; function CCartItem() { var mpStr_Key; var mi_Quantity; }; function CTax() { var mpStr_State2Char; var mpStr_TaxRate100; var md_TaxRate; var mpStr_State; }; function CLocation() { var mpStr_City; var mpStr_State2Char; var mpStr_Zip; var mB_Shipable; }; function LoadTaxsMeta() { var pTaxes = {}; var pArray_TaxRate = document.getElementById("TextArea_TaxRateMeta").value.split(gB_FalseIeTrueFireFox ? "\n" : "\r\n"); for(var Dw = 0; Dw < pArray_TaxRate.length; Dw++) { var pFields = pArray_TaxRate[Dw].Trim().split('\t'); if(3 == pFields.length) { var pTax = new CTax(); pTax.mpStr_State2Char = pFields[0]; pTax.mpStr_TaxRate100 = pFields[1]; pTax.md_TaxRate = parseFloat(pTax.mpStr_TaxRate100)/100.0; pTax.mpStr_State = pFields[2]; AssertPop(pTaxes[pTax.mpStr_State2Char] == null, 1920); pTaxes[pTax.mpStr_State2Char] = pTax; } } return pTaxes; }; function LoadStoreTaxs(Dw_StoreId, B_All) { if(!gpTaxes_Meta) gpTaxes_Meta = LoadTaxsMeta(); var pArray_Taxes = new Array(); var pArray_TaxRate = document.getElementById("TextArea_S" + Dw_StoreId + "TaxRate").value.split(" "); var Dw = 0; for(var Dw_0 = 0; Dw_0 < pArray_TaxRate.length; Dw_0++) { var pTax = gpTaxes_Meta[pArray_TaxRate[Dw_0]]; AssertPop(pTax, 1937); AssertPop(pArray_Taxes[Dw_0] == null, 1938); if(B_All) pArray_Taxes[Dw++] = pTax; else { if(gpResalePermit[pTax.mpStr_State2Char]) { var i_ShipableOtherStateCount = 0; for(var Dw_1 = 0; Dw_1 < gpStoreConfig[Dw_StoreId].mpArray_Location.length; Dw_1++) { var pLocation = gpStoreConfig[Dw_StoreId].mpArray_Location[Dw_1]; if(pTax.mpStr_State2Char != pLocation.mpStr_State2Char && pLocation.mB_Shipable) i_ShipableOtherStateCount++; } if(i_ShipableOtherStateCount == 0) pArray_Taxes[Dw++] = pTax; } else pArray_Taxes[Dw++] = pTax; } } return pArray_Taxes; }; function MakeTaxComma(Dw_StoreId) { var pStr = ""; var pArray = LoadStoreTaxs(Dw_StoreId, true); for(var Dw_0 = 0; Dw_0 < pArray.length; Dw_0++) { var pTax = pArray[Dw_0]; pStr += ", " + pTax.mpStr_State + " " + pTax.mpStr_TaxRate100 + "%"; } return pStr.substr(2); }; CCart.prototype.LoadCartPage = function() { if(gB_IpLocalHost) { Span_ManualWeight.innerHTML = "<div align=right ><input name=Button_EnableCheckOutButton type=button onclick='return gpCart.EnableCheckOutButtonClicked();' value='EnableCheckOutButton' />" + "MaxItemBillWeight:<input id=Text_ManulMaxItemBillWeight size=5 maxlength=5 onchange='gpCart.ManualMaxItemBillWeightChanged();'/>" + "PackagePieceCount:<input id=Text_ManualPackagePieceCount size=5 maxlength=5 onchange='gpCart.ManualPackagePieceCountChanged();'/>" + "UsaBillWeight:<input id=Text_ManulUsaBillWeight size=5 maxlength=5 onchange='gpCart.ManualUsaBillWeightChanged();'/><div/>"; Span_ManualTax.innerHTML = "<input id=Text_ManualTaxPercent size=4 maxlength=4 onchange='gpCart.ManualTaxPercentChanged();'/>%"; Span_ManualHandling.innerHTML = "<input id=Text_ManualHandling size=2 maxlength=2 onchange='gpCart.ManualHandlingChanged();'/>"; Span_ManualShipping.innerHTML = "<input id=Text_ManualShipping size=7 maxlength=7 onchange='gpCart.ManualShippingChanged();'/>"; } gpResalePermit = {}; var pArray_ResalePermit = TextArea_ResalePermit.value.split(" "); for(var Dw_0 = 0; Dw_0 < pArray_ResalePermit.length; Dw_0++) { gpResalePermit[pArray_ResalePermit[Dw_0]] = true; } LoadUspsCountriesRatesIfNot(); var pStr_Countries = ""; for(var i_0 = 0; i_0 < gpArray_UspsCountry.length; i_0++) { pStr_Countries += "<option>" + gpArray_UspsCountry[i_0].mpStr_Country + "</option>"; } Span_Country.innerHTML = "<select id=Select_Country onchange='gpCart.CountryChanged();'>" + pStr_Countries + "</select>"; Span_CountryOther.innerHTML = "<select id=Select_CountryOther onchange='gpCart.CountryChanged();'>" + pStr_Countries + "</select>"; Form_Cart.Select_CheckOutOption.selectedIndex = this.mi_CheckOutOptionIndex; Form_Cart.Text_UsaZip.value = this.mpStr_Zip; Form_Cart.Select_AddressType.selectedIndex = this.mi_UsaAddressTypeIndex; var Dw_Lines = 0; for(pStr_Key in this.mpArray_Items[this.mDw_StoreId]) { var pCartItem = this.mpArray_Items[this.mDw_StoreId][pStr_Key]; var pItem = gpCategory.GetOrLoad(pStr_Key); AssertPop(pItem, 2310); pCartItem.mpItem = pItem; var pStr_SkuMpn = "S" + this.mDw_StoreId + " / " + pItem.mpStr_Key + " / " + pItem.mpStr_Mpn; var pStr_WeightForCompany = pItem.GetWeightString(true) + "/" + pItem.GetDimensionalWeightString(true); var pStr_WeightForBuyer = "[Wt:" + pItem.GetWeightString() + ",DiWt:" + pItem.GetDimensionalWeightString() + "]"; var pStr_ConditionForCompany = gpItemCondition[pItem.mItemCondition][1]; var pStr_ConditionForBuyer = "[" + gpItemCondition[pItem.mItemCondition][2] + "]"; var pStr_AlForBuyer = pItem.mDw_InventoryAll == 99999 ? "" : pItem.GetAvailabilityLocation(); var pStr_AlForCompany = pItem.GetAvailabilityLocation(true); if(pStr_AlForBuyer != "") pStr_AlForBuyer = "[" + pStr_AlForBuyer + "]"; var i_ItemShipableLoactionCount = 0; for(var Dw_0 = 0; Dw_0 < pItem.mpArray_Inventory.length; Dw_0++) { if(pCartItem.mi_Quantity <= pItem.mpArray_Inventory[Dw_0]) i_ItemShipableLoactionCount++; else gpStoreConfig[this.mDw_StoreId].mpArray_Location[Dw_0].mB_Shipable = false; } var pStr_SpecialOrderableForCompany = ""; var pStr_SpecialOrderableForBuyer = ""; if(i_ItemShipableLoactionCount == 0) { pStr_SpecialOrderableForCompany = "sp"; pStr_SpecialOrderableForBuyer = " [out/short of stock, special order, 2-5 days lead-time usually if vendor has it in stock.]"; } pCartItem.mpStr_InfoForCompany = pCartItem.mpStr_Key + "\t" + pCartItem.mpItem.md_PriceCost + "\t" + pStr_WeightForCompany + ";" + pStr_ConditionForCompany + ";" + pStr_AlForCompany + ";" + pStr_SpecialOrderableForCompany; pCartItem.mpStr_InfoForBuyer = pStr_SkuMpn + " " + pStr_ConditionForBuyer + " " + pStr_SpecialOrderableForBuyer; var pRow = Table_Cart.insertRow(Dw_Lines + gDw_CartItemIndexStart + 1); Dw_Lines++; var pCell; var pStr_Path = "Item.htm?Id=" + pItem.mpStr_FullKey; pCell = pRow.insertCell(-1); pCell.align="left"; pCell.innerHTML = "<a href=\"/" + pStr_Path + "\" class=ItemsTitle>" + pItem.mpStr_Name + "</a><br/>" + "<span class=KeySpan>" + pStr_SkuMpn + "</span><br>" + pStr_WeightForBuyer + pStr_ConditionForBuyer + pStr_AlForBuyer + (gB_IpLocalHost ? "<br/>Name:<input id=Text_Name name=Text_Name type=Text onchange=\"gpCart.ManualItemChanged();\" style='text-align: right;' > $<input id=Text_Price name=Text_Price type=Text size=9 onchange=\"gpCart.ManualItemChanged();\" style='text-align: right;' >" : ""); pCell = pRow.insertCell(-1); pCell.align="right"; pCell = pRow.insertCell(-1); pCell.innerHTML = "<input type=Text name=Text_Quantity size=5 value='" + pCartItem.mi_Quantity + "' style='text-align: right;' /><br/><button onclick=\"gpCart.RemoveItem('" + pStr_Key + "\');\">Remove</button>"; pCell.align="center"; pCell = pRow.insertCell(-1); pCell.align="right"; } this.CheckOutOptionChanged(); if(0 < this.mDw_SkuCount) { var pStr_Error = ""; if(this.GetCanShipLocationCount()) { this.mB_Shipable0 = true; Span_SpecialOrder.style.display = "none"; } else { var pStr_ErrorMessage = ""; if(1 < this.mDw_SkuCount) pStr_ErrorMessage += "*. Special order can have and only have one type of product, please split orders when you have more than one type of product.<br/>"; if(pStr_ErrorMessage != "") Span_SpecialOrder.style.display = "none"; Span_CartError.innerHTML = "Warnings/Errors found. This shopping cart may not be fulfilled. Possible reasons: <br/>" + "*. Quantity of an item in this cart is more than the quantity in stock. (Ignore this warning when special order) <br/>" + "*. All items in this cart can't be shipped from a single location, please split orders. (Ignore this warning when special order) <br/>" + pStr_ErrorMessage; } this.mB_UserAgree = false; } else { Tr_CartHead.style.display = Tr_SubTotal.style.display = "none"; Tr_CheckOutOptions.style.display = Tr_CheckOutOptionsDetails.style.display = "none"; Span_CartEmpty.innerHTML = "Shopping cart is empty."; Tr_InternationalBuyerNotice.style.display = "none"; } var pArray_Tracking = TextArea_SampleTracking.value.split(" "); var pStr_Tracking = ""; for(var Dw = 0; Dw < pArray_Tracking.length; Dw++) { pStr_Tracking += ", " + MakeTrackingNumberLink(pArray_Tracking[Dw]); } Div_InternationalSampleTrackingNumbers.innerHTML = pStr_Tracking.substr(2); document.title = gpStr_SiteName + " - " + "Shopping Cart"; }; function MakeOption(pStr_Name, d_Price, B_DisableIfGc, d_OverrideValue) { var pStr_Disabled = ""; var pStr_Unavailable = ""; if(B_DisableIfGc && gpCart.mi_CheckOutOptionIndex == 0) { } return "<option " + pStr_Disabled + ">" + pStr_Name + ": $" + (d_OverrideValue != null ? d_OverrideValue : d_Price).toFixed(2) + pStr_Unavailable + "</option>"; } function MakeOptions(pArray, d_OverrideValue) { var pStr_Return = ""; for(var Dw = 0; Dw < pArray.length; Dw++) { var p = pArray[Dw]; pStr_Return += MakeOption(p[0], p[1], p[2], d_OverrideValue); } return pStr_Return; }; function MakePercentOption(pStr_Name, d_BaseValue, d_Rate, d_OverrideRate) { if(d_OverrideRate != null) d_Rate = d_OverrideRate; var d_Rate100 = d_Rate*100; return "<option>" + pStr_Name + ": " + d_Rate100.toFixed(2) + "%: $" + (d_BaseValue*d_Rate).toFixed(2) + "</option>"; }; function MakePercentOptions(pArray, d_BaseValue, d_OverrideRate) { var pStr_Return = ""; for(var Dw = 0; Dw < pArray.length; Dw++) { var p = pArray[Dw]; pStr_Return += MakePercentOption(p[0], d_BaseValue, p[1], d_OverrideRate); } return pStr_Return; }; function CheckboxMpnChanged(B_Checked) { Form_This.Button_Add.disabled = !B_Checked; }; CCart.prototype.ManualItemChanged = function() { this.CalculateSubTotal(); }; CCart.prototype.EnableCheckOutButtonClicked = function() { this.SetCheckOutButton(true); }; CCart.prototype.ManualMaxItemBillWeightChanged = function() { this.CalculateSubTotal(); }; CCart.prototype.ManualPackagePieceCountChanged = function() { this.CalculateSubTotal(); }; CCart.prototype.ManualUsaBillWeightChanged = function() { this.CalculateSubTotal(); }; CCart.prototype.ManualTaxPercentChanged = function() { this.CalculateSubTotal(); }; CCart.prototype.ManualHandlingChanged = function() { this.CalculateSubTotal(); }; CCart.prototype.ManualShippingChanged = function() { this.CalculateSubTotal(); }; CCart.prototype.SetTaxOptions0 = function(pStr_Options) { Span_TaxSelect.innerHTML = "<select id=Select_Tax onchange='gpCart.TaxChanged(true);'>" + pStr_Options + "</select>"; }; CCart.prototype.SetTaxOptions1 = function(pArray, d_BaseValue) { var d_Rate; var pStr = gB_IpLocalHost ? Form_Cart.Text_ManualTaxPercent.value.Trim() : "" ; if(pStr.length) { var d_Rate100 = ParseFloat(pStr); AssertPop(IsNumber(d_Rate100), 2328); d_Rate = d_Rate100/100; } if(pArray.length) this.SetTaxOptions0(MakePercentOptions(pArray, d_BaseValue, d_Rate)); else this.SetTaxOptions0(MakePercentOption("", d_BaseValue, 0, d_Rate)); }; CCart.prototype.SetShippingOptions0 = function(pStr_Options) { Span_Shipping.innerHTML = "<select id=Select_Shipping onchange='gpCart.ShippingChanged();'>" + pStr_Options + "</select>"; }; CCart.prototype.SetShippingOptions1 = function(pArray) { var d_Shipping; var pStr = gB_IpLocalHost ? Form_Cart.Text_ManualShipping.value.Trim() : ""; if(pStr.length) { d_Shipping = ParseFloat(pStr); AssertPop(IsNumber(d_Shipping), 2344); this.mB_ManualShipping = true; } else this.mB_ManualShipping = false; this.SetShippingOptions0(MakeOptions(pArray, d_Shipping)); }; CCart.prototype.SetHandling = function() { var pStr = gB_IpLocalHost ? Form_Cart.Text_ManualHandling.value.Trim() : ""; if(pStr.length) { this.md_HandlingFee = ParseFloat(pStr); AssertPop(IsNumber(this.md_HandlingFee), 2334); } else this.md_HandlingFee = gpStoreConfig[this.mDw_StoreId].md_HandlingFeeBase + gpStoreConfig[this.mDw_StoreId].md_HandlingFeeIncreament * this.mDw_SkuCount; Span_Handling.innerHTML = "$" + this.md_HandlingFee.toFixed(2); }; CCart.prototype.CheckOutOptionChanged = function() { this.mi_CheckOutOptionIndex = Form_Cart.Select_CheckOutOption.selectedIndex; Div_PpLine.style.display = "none"; var pArray = document.getElementsByName("Div_CheckOutOption"); var Dw_CheckOutOptionCount = Form_Cart.Select_CheckOutOption.options.length; AssertPop(pArray.length == Dw_CheckOutOptionCount * 2, 2162); for(var Dw = 0; Dw < Dw_CheckOutOptionCount; Dw++) { pArray[Dw].style.display = pArray[Dw + Dw_CheckOutOptionCount].style.display = (Dw == this.mi_CheckOutOptionIndex ? "" : "none"); } if(this.mi_CheckOutOptionIndex == 0) { this.mSelect_Country = Form_Cart.Select_Country; this.mSpan_ZipMessage = Span_ZipMessage; } else if(this.mi_CheckOutOptionIndex == 1) { this.mSelect_Country = Form_Cart.Select_CountryOther; this.mSpan_ZipMessage = Span_ZipMessageOther; } else AssertPop(false, 2178); this.mSelect_Country.selectedIndex = this.mi_CountryIndex; this.CalculateSubTotal(); }; CCart.prototype.CountryChanged = function() { this.mi_CountryIndex = this.mSelect_Country.selectedIndex; var pStr_Shipping = ""; var d_Insurance = GetUspsInsurance(this.md_SubTotal); var pArray_Insurance = new Array(); pArray_Insurance[0] = ["Do not buy insurance", 0]; pArray_Insurance[1] = ["Buy insurance", d_Insurance]; Span_Insurance.innerHTML = "<select id=Select_Insurance onchange='gpCart.CalculateTotal();'>" + MakeOptions(pArray_Insurance) + "</option>" + "</select>"; Span_UsaAddress.style.display = (this.mi_CheckOutOptionIndex == 0 && this.mi_CountryIndex == 0 ? "" : "none"); if (this.mi_CountryIndex == 0) { this.UsaZipAddressTypeChanged(); } else { this.NonUsaAddressChanged(); } }; CCart.prototype.UsaZipAddressTypeChanged = function() { AssertPop(this.mi_CountryIndex == 0, 2222); var pStr_ToZip = (this.mi_CheckOutOptionIndex == 0 ? Form_Cart.Text_UsaZip : Form_Cart.Text_ZipCodeOther).value.Trim(); var pStr_State2Char; var pStr_ZipMessage = ""; var pArray_Shipping; if(pStr_ToZip.length == 0) { } else if(pStr_ToZip.length == 5) { var Dw = 0; for(; Dw < pStr_ToZip.length; Dw++) { var pChar = pStr_ToZip.charAt(Dw); if("0" <= pChar && pChar <= "9") { } else { break; } } if(Dw == 5) { var B_PoBox; if(this.mi_CheckOutOptionIndex == 0) { B_PoBox = this.mi_UsaAddressTypeIndex == 0 ? false : true; } else if(this.mi_CheckOutOptionIndex == 1) { var pStr = Form_Cart.Text_AddressLine1Other.value.Trim().toLowerCase().LeaveOnly09AZaz(); B_PoBox = pStr.indexOf("pobox") != -1; } else AssertPop(false, 2257); var pArray_UsaState = new Array(); pArray_Shipping = CalculateShippingRates(this.mDw_StoreId, this.md_UsaShipWeightTotal, this.mDw_PackagePieceCount, this.md_PackageMaxItemBillWeight, 0, 0, true, pStr_ToZip, B_PoBox, pArray_UsaState); if(pArray_Shipping) { var pStr_State2Char = pArray_UsaState[0]; } else pStr_ZipMessage = "Zip code can't be found."; } else pStr_ZipMessage = "Zip code error."; } else pStr_ZipMessage = "Zip code error."; this.mSpan_ZipMessage.innerHTML = pStr_ZipMessage; if(pArray_Shipping) { var pArray_OrderTax = new Array(); var pArray_TaxRates = LoadStoreTaxs(this.mDw_StoreId, false); var Dw_0 = 0; for(; Dw_0 < pArray_TaxRates.length; Dw_0++) { var pTax = pArray_TaxRates[Dw_0]; if(pTax.mpStr_State2Char == pStr_State2Char) { pArray_OrderTax[pArray_OrderTax.length] = [pTax.mpStr_State2Char, pTax.md_TaxRate]; pArray_OrderTax[pArray_OrderTax.length] = [pTax.mpStr_State2Char + ": Have resale/exempt permit", 0]; break; } } if(Dw_0 == pArray_TaxRates.length) pArray_OrderTax[pArray_OrderTax.length] = [pStr_State2Char, 0]; this.SetTaxOptions1(pArray_OrderTax, this.md_SubTotal); } else { this.SetTaxOptions0("<option>---------------Need Zip code---------------</option>"); Div_TaxPermit.style.display = "none"; } var pStr_ShippingOptions; if(pArray_Shipping) this.SetShippingOptions1(pArray_Shipping); else this.SetShippingOptions0("<option>---------------Need Zip code---------------</option>"); if(pArray_Shipping && this.mi_CheckOutOptionIndex == 0) { this.mpStr_Zip = pStr_ToZip; var pStr = ""; if(!this.mB_ManualShipping) pStr += "<input type='hidden' name='checkout-flow-support.merchant-checkout-flow-support.shipping-methods.flat-rate-shipping-1.shipping-restrictions.allowed-areas.us-zip-area-1.zip-pattern' value='" + pStr_ToZip + "'/>"; if(!this.mi_UsaAddressTypeIndex == 1) pStr += "<input type='hidden' name='checkout-flow-support.merchant-checkout-flow-support.shipping-methods.flat-rate-shipping-1.shipping-restrictions.allow-us-po-box' value='false'/>"; Span_GcShipArea.innerHTML = pStr; } this.TaxChanged(); this.ShippingChanged(); }; CCart.prototype.NonUsaAddressChanged = function() { this.mSpan_ZipMessage.innerHTML = ""; Span_GcShipArea.innerHTML = "<input type=hidden name='checkout-flow-support.merchant-checkout-flow-support.shipping-methods.flat-rate-shipping-1.shipping-restrictions.allowed-areas.world-area-1' value=true>"; this.SetTaxOptions0("<option>International: 0.00%: $0.00</option>"); var pArray = CalculateShippingRates(this.mDw_StoreId, this.md_UsaShipWeightTotal * 1.1 + 7, this.mDw_PackagePieceCount, this.md_PackageMaxItemBillWeight, 0, 0, false, null, null, null, this.mi_CheckOutOptionIndex == 0 ? false : true); if (this.mi_CheckOutOptionIndex == 0 && this.mi_CountryIndex) { for (var Dw = 0; Dw < pArray.length; Dw++) { pArray[Dw][1] += (this.md_SubTotal + pArray[Dw][1] + 0 + 0) * 0.0125; } } this.SetShippingOptions1(pArray); var pStr_International = HttpGetText("Empty.htm?Cmd=International", true); this.TaxChanged(); this.ShippingChanged(); }; CCart.prototype.UsaZipChanged = function() { return this.UsaZipAddressTypeChanged(); }; CCart.prototype.AddressTypeChanged = function() { this.mi_UsaAddressTypeIndex = Form_Cart.Select_AddressType.selectedIndex; AssertPop(this.mi_CountryIndex == 0, 2329); this.UsaZipAddressTypeChanged(); }; CCart.prototype.ZipOtherChanged = function() { if(this.mi_CountryIndex == 0) { this.UsaZipAddressTypeChanged(); } }; CCart.prototype.Address1OtherChanged = function() { if(this.mi_CountryIndex == 0) { this.UsaZipAddressTypeChanged(); } }; CCart.prototype.SpecialOrderCheckBoxChanged = function() { this.mB_Shipable0 = Form_Cart.Checkbox_SpecialOrder.checked; this.CalculateTotal(); }; CCart.prototype.UserAgreeCheckBoxChanged = function() { this.mB_UserAgree = Form_Cart.Checkbox_UserAgree.checked; this.CalculateTotal(); }; CCart.prototype.TaxChanged = function(B_Ct) { Div_TaxPermit.style.display = Form_Cart.Select_Tax.selectedIndex == 0 ? "none" : ""; if(B_Ct) this.CalculateTotal(); }; CCart.prototype.TaxPermitNumberChanged = function() { this.CalculateTotal(); }; CCart.prototype.ShippingChanged = function() { var pArray_Shipping = Form_Cart.Select_Shipping.options[Form_Cart.Select_Shipping.selectedIndex].innerHTML.split(":"); if (pArray_Shipping[0].indexOf("freight") != -1) { if(this.mi_CountryIndex == 0) Div_BuyerFreightUsa.style.display = "", Div_BuyerFreightNonUsa.style.display = "none"; else Div_BuyerFreightUsa.style.display = "none", Div_BuyerFreightNonUsa.style.display = ""; Div_Insurance.style.display = Div_Signature.style.display = "none"; this.mB_BuyerFreight = true; } else { Div_BuyerFreightUsa.style.display = Div_BuyerFreightNonUsa.style.display = "none"; Div_Insurance.style.display = Div_Signature.style.display = ""; this.mB_BuyerFreight = false; } this.CalculateTotal(); }; CCart.prototype.BuyerFreightChange = function() { this.CalculateTotal(); }; function CCart() { }; CCart.prototype.InitFrom = function(pStr) { var pArray_CartTag = pStr.split("_CartTag_"); if(pArray_CartTag.length == 3) { var pArray_SemiColon = pArray_CartTag[1].split("~"); if(pArray_SemiColon) { AssertPop(pArray_SemiColon.length == 8, 2386); var Dw = 0; Dw++; var i_StoreId = parseInt(pArray_SemiColon[Dw++]); AssertPop(!isNaN(i_StoreId) && 0 <= i_StoreId && i_StoreId < gpStoreConfig.length, 2390); this.mDw_StoreId = i_StoreId; this.mi_CheckOutOptionIndex = ParseInt(pArray_SemiColon[Dw++]); this.mi_CountryIndex = ParseInt(pArray_SemiColon[Dw++]); this.mi_UsaAddressTypeIndex = ParseInt(pArray_SemiColon[Dw++]); this.mpStr_Zip = pArray_SemiColon[Dw++]; var pArray_NameValue = pArray_SemiColon[Dw++].split("&"); for (var i = 0; i < pArray_NameValue.length; i++) { var pArray = pArray_NameValue[i].split(":"); if(3 == pArray.length) { var i_ItemStoreId = parseInt(pArray[0]); if(!isNaN(i_ItemStoreId) && 0 <= i_ItemStoreId && i_ItemStoreId < gpStoreConfig.length) { var pCartItem = new CCartItem(); pCartItem.mpStr_Key = pArray[1]; pCartItem.mi_Quantity = parseInt(pArray[2]); if(!isNaN(pCartItem.mi_Quantity)) this.mpArray_Items[i_ItemStoreId][pCartItem.mpStr_Key] = pCartItem; } } } } } }; CCart.prototype.Init = function() { this.mDw_StoreId = 0; this.mi_CheckOutOptionIndex = 0; this.mi_CountryIndex = 0; this.mi_UsaAddressTypeIndex = 0; this.mpStr_Zip = ""; this.mpArray_Items = new Array(); for(var Dw = 0; Dw < gpStoreConfig.length; Dw++) { this.mpArray_Items[Dw] = {}; } var i_CartTagIndex = location.href.indexOf("_CartTag_"); if(i_CartTagIndex != -1) { var pStr = location.href.substr(i_CartTagIndex); this.InitFrom(pStr); } else if(document.cookie != "") { this.InitFrom(document.cookie); } var pArray_UrlS = decodeURI(document.URL).split("=S"); if(pArray_UrlS.length == 2) { var i_StoreId = parseInt(pArray_UrlS[1]); if(!isNaN(i_StoreId)) { this.mDw_StoreId = i_StoreId; } }; this.Save(); }; CCart.prototype.GetCanShipLocationCount = function() { var Dw_Result = 0; for(var Dw_0 = 0; Dw_0 < gpStoreConfig[this.mDw_StoreId].mpArray_Location.length; Dw_0++) { if(gpStoreConfig[this.mDw_StoreId].mpArray_Location[Dw_0].mB_Shipable) Dw_Result++; } return Dw_Result; }; CCart.prototype.Save = function() { var pStr = ""; for(var Dw = 0; Dw < this.mpArray_Items.length; Dw++) { for(pStr_Key in this.mpArray_Items[Dw]) { var pCartItem = this.mpArray_Items[Dw][pStr_Key]; if(pCartItem.mi_Quantity != 0) { pStr += "&" + Dw + ":" + pCartItem.mpStr_Key + ":" + pCartItem.mi_Quantity; } } } if(pStr != "") pStr = pStr.substr(1); document.cookie = "_CartTag_=~" + this.mDw_StoreId + "~" + this.mi_CheckOutOptionIndex + "~" + this.mi_CountryIndex + "~" + this.mi_UsaAddressTypeIndex + "~" + this.mpStr_Zip + "~" + pStr + "~_CartTag_;path=/"; }; CCart.prototype.Add = function (pStr_Key, i_Quantity) { var pCartItem = this.mpArray_Items[this.mDw_StoreId][pStr_Key]; if(!pCartItem) { pCartItem = new CCartItem(); pCartItem.mpStr_Key = pStr_Key; pCartItem.mi_Quantity = i_Quantity; this.mpArray_Items[this.mDw_StoreId][pStr_Key] = pCartItem; } else { pCartItem.mi_Quantity += i_Quantity; } this.Save(); }; CCart.prototype.SetItem = function (pStr_Key, i_Quantity) { var pCartItem = this.mpArray_Items[this.mDw_StoreId][pStr_Key]; if(pCartItem) pCartItem.mi_Quantity = i_Quantity; this.Save(); }; CCart.prototype.SetItemNotSave = function (i_Index, i_Quantity) { var i = 0; for(pStr_Key in this.mpArray_Items[this.mDw_StoreId]) { if(i == i_Index) { this.mpArray_Items[this.mDw_StoreId][pStr_Key].mi_Quantity = i_Quantity; break; } i++; } }; CCart.prototype.RemoveItem = function (pStr_Key) { this.SetItem(pStr_Key, 0); location.href = "/Cart.htm"; }; CCart.prototype.Update = function () { var pArray = document.getElementsByName("Text_Quantity"); for(var Dw = 0; Dw < pArray.length; Dw++) { var i_Quantity = parseInt(pArray[Dw].value); if(!isNaN(i_Quantity)) { this.SetItemNotSave(Dw, i_Quantity); } } this.Save(); location.href = "/Cart.htm"; }; CCart.prototype.RemoveAll = function(B_AllStore, B_RefreshCartPage) { if(B_AllStore) this.mpArray_Items = new Array(), alert("ok"); else this.mpArray_Items[this.mDw_StoreId] = {}; this.Save(); if(B_RefreshCartPage) location.href = "/Cart.htm"; }; CCart.prototype.CalculateSubTotal = function() { this.md_SubTotal = 0; this.mDw_SkuCount = 0; this.mDw_ItemCount = 0; this.md_PackageMaxItemBillWeight = 0; this.mDw_PackagePieceCount = 0; this.md_UsaShipWeightTotal = 0; this.mDw_PieceCountNeedPallet = 0; var Dw = 0; gpStr_CartLines = ""; this.mpStr_Gc = ""; var pArray_Name = document.getElementsByName("Text_Name"); var pArray_Price = document.getElementsByName("Text_Price"); for(pStr_Key in this.mpArray_Items[this.mDw_StoreId]) { var pCartItem = this.mpArray_Items[this.mDw_StoreId][pStr_Key]; var B_Calculate = true; if(pArray_Name.length) { pStr_Name = pArray_Name[Dw].value.Trim(); pStr_Price = pArray_Price[Dw].value.Trim(); if(pStr_Name.length) pCartItem.mpStr_Name = pStr_Name; if(pStr_Price.length) { var d_Price = ParseFloat(pStr_Price); if(IsNumber(d_Price)) { pCartItem.md_Price = d_Price; B_Calculate = false; } else { alert("error manual price format: " + pStr_Price); } } } if(B_Calculate) pCartItem.md_Price = pCartItem.mpItem.GetPriceByQuantity(pCartItem.mi_Quantity)*gpRateRate[gpCart.mi_CheckOutOptionIndex][0]; this.md_SubTotal += pCartItem.md_Price * pCartItem.mi_Quantity; this.mDw_SkuCount++; this.mDw_ItemCount += pCartItem.mi_Quantity; this.md_PackageMaxItemBillWeight = Math.max(this.md_PackageMaxItemBillWeight, pCartItem.mpItem.md_BillWeight); if(8 <= pCartItem.mpItem.md_BillWeight) this.mDw_PackagePieceCount += pCartItem.mi_Quantity; this.md_UsaShipWeightTotal += pCartItem.mpItem.md_BillWeight * pCartItem.mi_Quantity; if(pCartItem.mpItem.mB_Pallet) this.mDw_PieceCountNeedPallet += pCartItem.mi_Quantity; var pCells = Table_Cart.rows[this.mDw_SkuCount + gDw_CartItemIndexStart].cells; pCells[pCells.length-3].innerHTML = "$" + pCartItem.md_Price.toFixed(2); pCells[pCells.length-1].innerHTML = "$" + (pCartItem.md_Price * pCartItem.mi_Quantity).toFixed(2); this.mpStr_Gc += MakeCartItem(Dw, pCartItem.mpStr_Name ? pCartItem.mpStr_Name : pCartItem.mpItem.mpStr_Name, pCartItem.mpStr_Name ? "" : pCartItem.mpStr_InfoForBuyer, pCartItem.md_Price, pCartItem.mi_Quantity, pCartItem.mpStr_InfoForCompany); Dw++; } if(this.mDw_PackagePieceCount < this.mDw_ItemCount) this.mDw_PackagePieceCount++; this.md_UsaShipWeightTotal = Math.ceil(this.md_UsaShipWeightTotal + this.mDw_PackagePieceCount * 1); if(gB_IpLocalHost) { var pStr; pStr = Form_Cart.Text_ManulMaxItemBillWeight.value.Trim(); if(pStr.length) { this.md_PackageMaxItemBillWeight = ParseFloat(pStr); } pStr = Form_Cart.Text_ManualPackagePieceCount.value.Trim(); if(pStr.length) { this.mDw_PackagePieceCount = ParseFloat(pStr); } pStr = Form_Cart.Text_ManulUsaBillWeight.value.Trim(); if(pStr.length) { this.md_UsaShipWeightTotal = ParseFloat(pStr); } } if(this.mDw_SkuCount) { Span_SubTotal.innerHTML = "$" + this.md_SubTotal.toFixed(2); this.SetHandling(); this.CountryChanged(); } }; CCart.prototype.CalculateTotal = function() { this.mDw_ErrorCount = 0; this.mpStr_ErrorMessage = ""; var pArray_Tax = Form_Cart.Select_Tax.options[Form_Cart.Select_Tax.selectedIndex].innerHTML.split(": $"); if (pArray_Tax.length == 2) { this.mpStr_TaxSelected = pArray_Tax[0]; this.md_Tax = parseFloat(pArray_Tax[1]); if (Form_Cart.Select_Tax.selectedIndex == 1) { var pStr_TaxExemptPermit = Form_Cart.Text_TaxExemptPermit.value.Trim(); if (pStr_TaxExemptPermit == "") this.mpStr_ErrorMessage += "Tax permit number is empty."; this.mpStr_TaxSelected += ". Permit number: " + pStr_TaxExemptPermit; } } else { this.mDw_ErrorCount++; } var pArray_Shipping = Form_Cart.Select_Shipping.options[Form_Cart.Select_Shipping.selectedIndex].innerHTML.split(":"); if (this.mDw_ErrorCount == 0 && pArray_Shipping.length == 2) { var pArray_Insurance = Form_Cart.Select_Insurance.options[Form_Cart.Select_Insurance.selectedIndex].innerHTML.split(": $"); var pArray_Signature = Form_Cart.Select_Signature.options[Form_Cart.Select_Signature.selectedIndex].innerHTML.split(": $"); this.md_Insurance = parseFloat(pArray_Insurance[1]); this.md_Signature = parseFloat(pArray_Signature[1]); this.mpStr_ShippingName = ""; this.md_Shipping = 0.0; this.mpStr_Customs = ""; this.md_PpSurcharge = 0.0225; this.mpStr_ShippingName = pArray_Shipping[0] + ", to " + this.mpStr_ToPlace; this.md_Shipping = parseFloat(pArray_Shipping[1].substr(2)); if (0 < this.mi_CountryIndex) { this.md_PpSurcharge += 0.01; } this.mpStr_FinancialName = ""; if (this.mi_CheckOutOptionIndex == 0) { if (this.mi_CountryIndex == 0) { this.md_FinancialSurchargeExplict = 0; } else { this.md_FinancialSurchargeExplict = 0; } } else { if (this.mi_CountryIndex == 0) { this.md_FinancialSurchargeExplict = 15; } else { this.md_FinancialSurchargeExplict = 30; } this.mpStr_FinancialName = "PaymentProcessing/BankFee"; } if (this.md_FinancialSurchargeExplict) { Span_FinancialName.innerHTML = this.mpStr_FinancialName; Span_FinancialValue.innerHTML = "$" + this.md_FinancialSurchargeExplict.toFixed(2); Div_Financial.style.display = ""; } else { Div_Financial.style.display = "none"; } this.md_Total = this.md_SubTotal + this.md_Tax + this.md_HandlingFee + this.md_Shipping + (this.mB_BuyerFreight ? 0 : this.md_Insurance + this.md_Signature) + this.md_FinancialSurchargeExplict; Span_Total.innerHTML = "$" + this.md_Total.toFixed(2); this.mB_ShipableToAddress = true; var i_0 = 0; var pStr_Seperator = "<!----jjjjjj----->"; this.mpStr_Gc = this.mpStr_Gc.split(pStr_Seperator)[0] + pStr_Seperator; gpStr_CartLines = gpStr_CartLines.split(pStr_Seperator)[0] + pStr_Seperator; this.mpStr_Gc += MakeCartCharge(this.mDw_SkuCount + (i_0++), "Tax: ", this.mpStr_TaxSelected, this.md_Tax); this.mpStr_Gc += MakeCartCharge(this.mDw_SkuCount + (i_0++), "Handling: ", "", this.md_HandlingFee); this.mpStr_Gc += MakeCartCharge(this.mDw_SkuCount + (i_0++), "Shipping: ", this.mpStr_ShippingName, this.md_Shipping); if (this.mB_BuyerFreight) { this.mpStr_Gc += MakeCartCharge(this.mDw_SkuCount + (i_0++), "Shipping insurance: ", "Specified by buyer", 0); this.mpStr_Gc += MakeCartCharge(this.mDw_SkuCount + (i_0++), "Delivery signature: ", "Specified by buyer", 0); this.mpStr_Gc += MakeCartMultiLineNote(this.mDw_SkuCount + (i_0), this.mi_CountryIndex == 0 ? Form_Cart.TextArea_BuyerFreightUsa.value : Form_Cart.TextArea_BuyerFreightNonUsa.value); } else { this.mpStr_Gc += MakeCartCharge(this.mDw_SkuCount + (i_0++), "Shipping insurance: ", pArray_Insurance[0], this.md_Insurance); this.mpStr_Gc += MakeCartCharge(this.mDw_SkuCount + (i_0++), "Delivery signature: ", pArray_Signature[0], this.md_Signature); } if(this.md_FinancialSurchargeExplict) this.mpStr_Gc += MakeCartCharge(this.mDw_SkuCount + (i_0++), this.mpStr_FinancialName, "", this.md_FinancialSurchargeExplict); this.mpStr_Gc += MakeCartSingleLineNote(this.mDw_SkuCount + (i_0++), "Buyer confirmed: ", "I have read and agree the store policies. (http://alrightdeals.com/Terms.htm)"); this.mpStr_Gc += "<input type=hidden name=shopping-cart.merchant-private-data value='1' />\r\n"; } else { Span_Total.innerHTML = "-----"; this.mB_ShipableToAddress = false; } this.Save(); var pArray = document.getElementsByName("Button_GenerateQuotation"); for (var Dw = 0; Dw < pArray.length; Dw++) { pArray[Dw].disabled = !this.mB_ShipableToAddress; } this.SetCheckOutButton(this.mB_Shipable0 && this.mB_UserAgree && this.mB_ShipableToAddress && this.mpStr_ErrorMessage == ""); }; CCart.prototype.SetCheckOutButton = function(B_Enable) { Form_Cart.Button_Gc.disabled = Form_Cart.Button_SubmitOrder.disabled = !B_Enable; Form_Cart.Button_Pp.disabled = true; }; CCart.prototype.GoogleCheckOut = function() { AssertPop(this.mpStr_ErrorMessage == "", 2597); Div_Gc.innerHTML = this.mpStr_Gc; Form_Gc.action = "https://checkout.google.com/cws/v2/Merchant/" + gpStr_Merchant + "/checkoutForm"; Form_Gc.ship_method_name_1.value = this.mpStr_ShippingName; Form_Gc.ship_method_price_1.value = 0; Form_Gc.submit(); }; CCart.prototype.PayPalCheckOut = function() { AssertPop(this.mpStr_ErrorMessage == "", 2606); Form_Cart.action = "https://www.paypal.com/cgi-bin/webscr"; Form_Cart.business.value = "service@" + gpStr_CompanyName + ".com"; Form_Cart.submit(); }; function gpCart_SelfCheckOut0() { Form_Cart.Button_SubmitOrder.value = "Submitting ..."; Form_Cart.Button_SubmitOrder.disabled = true; Span_ErrorMessage.innerHTML = ""; setTimeout(gpCart_SelfCheckOut1, 1); return false; }; function gpCart_SelfCheckOut1() { return gpCart.SelfCheckOut1(); }; CCart.prototype.SelfCheckOut1 = function(Dw_0Quotation_1Submit) { this.mpStr_ErrorMessage = ""; this.mpStr_ShipTo = ""; if(0 < this.mi_CheckOutOptionIndex) { var B_Us = this.mi_CountryIndex == 0; var pStr_EmailAddress = Form_Cart.Text_EmailAddress.value.Trim().EscapeHtml(); var pStr_EaCheckSum = Form_Cart.Text_EaCheckSum.value.Trim().EscapeHtml(); var pStr_FullName = Form_Cart.Text_FullName.value.Trim().EscapeHtml(); var pStr_CompanyName = Form_Cart.Text_CompanyName.value.Trim().EscapeHtml(); var pStr_AddressLine1 = Form_Cart.Text_AddressLine1Other.value.Trim().EscapeHtml(); var pStr_AddressLine2 = Form_Cart.Text_AddressLine2.value.Trim().EscapeHtml(); var pStr_City = Form_Cart.Text_City.value.Trim().EscapeHtml(); var pStr_State = Form_Cart.Text_State.value.Trim().EscapeHtml(); var pStr_ZipCode = Form_Cart.Text_ZipCodeOther.value.Trim().EscapeHtml(); var pStr_Country = this.mSelect_Country.options[this.mi_CountryIndex].innerHTML.Trim().EscapeHtml(); var pStr_PhoneNumber = Form_Cart.Text_PhoneNumber.value.Trim().EscapeHtml(); if(pStr_FullName != "") this.mpStr_ShipTo = pStr_FullName; else this.mpStr_ErrorMessage = "Name is empty."; if(pStr_CompanyName != "") this.mpStr_ShipTo += "<br/>" + pStr_CompanyName; if(pStr_AddressLine1 != "") this.mpStr_ShipTo += "<br/>" + pStr_AddressLine1; else this.mpStr_ErrorMessage += "<br/>" + "Address line 1 is empty."; if(pStr_AddressLine2 != "") this.mpStr_ShipTo += "<br/>" + pStr_AddressLine2; if(B_Us) { if(pStr_City == "") this.mpStr_ErrorMessage += "<br/>" + "City is empty."; if(pStr_State == "") this.mpStr_ErrorMessage += "<br/>" + "State is empty."; if(pStr_ZipCode == "") this.mpStr_ErrorMessage += "<br/>" + "Zip is empty."; this.mpStr_ShipTo += "<br/>" + pStr_City + " " + pStr_State + " " + pStr_ZipCode; } else { if(pStr_City != "") this.mpStr_ShipTo += "<br/>City: " + pStr_City; else this.mpStr_ErrorMessage += "<br/>" + "City is empty."; if(pStr_State != "") this.mpStr_ShipTo += "<br/>State/Province: " + pStr_State; if(pStr_ZipCode != "") this.mpStr_ShipTo += "<br/>Zip/PostalCode: " + pStr_ZipCode; } if(pStr_Country != "") this.mpStr_ShipTo += "<br/>" + pStr_Country; if(pStr_PhoneNumber != "") this.mpStr_ShipTo += "<br/>" + pStr_PhoneNumber; else this.mpStr_ErrorMessage += "<br/>" + "Phone number is empty."; if(pStr_EmailAddress != "") this.mpStr_ShipTo += "<br/>" + pStr_EmailAddress; else this.mpStr_ErrorMessage += "<br/>" + "Email address is empty."; var pStr_CheckEmailAddressFormat = CheckEmailAddressFormat(pStr_EmailAddress); if(pStr_CheckEmailAddressFormat != "") this.mpStr_ErrorMessage += "<br/>" + pStr_CheckEmailAddressFormat; if(pStr_EaCheckSum != "") ; else this.mpStr_ErrorMessage += "<br/>" + "Email address verification code is empty."; this.mpStr_ShipTo = this.mpStr_ShipTo + "<br/>" + (gB_IpLocalHost ? "" : gpStr_Ip); this.mpStr_EmailAddress = pStr_EmailAddress; this.mpStr_EaCheckSum = pStr_EaCheckSum; } var pStr_PreviewOrderPrototype = HttpGetText("PreviewOrderPrototype.htm"); var pArray = pStr_PreviewOrderPrototype.split("<!------>"); var pDate = GetHttpServerTime(); var pStr_OrderNumber = pDate.SPrintYYYYMMDDhhmmss(true).substr(3); var i_0 = 0; var pStr_Preview = "" + pArray[i_0++] + (Dw_0Quotation_1Submit == 0 ? "Customer Quotation" : "Order# " + pStr_OrderNumber) + pArray[i_0++] + pDate.toUTCString() + pArray[i_0++] + "" + pArray[i_0++] + this.mpStr_ShipTo + pArray[i_0++] + Form_Cart.Select_CheckOutOption.options[this.mi_CheckOutOptionIndex].innerHTML.Trim() + pArray[i_0++] + gpStr_CartLines + pArray[i_0++] + this.md_Total.toFixed(2) + pArray[i_0++]; if(0 < this.mi_CheckOutOptionIndex) pStr_Preview += pArray[i_0++]; else i_0++; pStr_Preview += pArray[i_0++]; if(Dw_0Quotation_1Submit == 0) { Form_Popup.PostBase16.value = pStr_Preview.Base16Encode(); Form_Popup.submit(); } else { if(this.mpStr_ErrorMessage == "") { var pStr_Result = HttpPostFormText("/Order.htm", true, null, "Cmd=1&EmailAddress=" + this.mpStr_EmailAddress.Base16Encode() + "&EaCheckSum=" + this.mpStr_EaCheckSum.Base16Encode() + "&Subject=" + ("AlrightDeals order# " + pStr_OrderNumber + " $" + this.md_Total.toFixed(2)).Base16Encode() + "&Order=" + pStr_Preview.Base16Encode()); this.mpStr_ErrorMessage += pStr_Result.Trim(); } if(this.mpStr_ErrorMessage == "") { pStr = "<div style='padding-left:8px;padding-top:8px;color:green;font-size:12px;font-weight:bold;'>Your order has been submitted successfully.<br/>An confirmation email has been sent to you.<br/>Read the instructions in the email regarding how to make a payment.</div>"; this.RemoveAll(false, false); Div_ShoppingCart.innerHTML = pStr; } else { this.mpStr_ErrorMessage = "Error(s) found:<br/>" + this.mpStr_ErrorMessage + "<br/>"; Form_Cart.Button_SubmitOrder.value = "Submit Order"; Form_Cart.Button_SubmitOrder.disabled = false; Span_ErrorMessage.innerHTML = this.mpStr_ErrorMessage; } } }; function VerifyEmailAddress0() { Form_Cart.Button_VerifyEa.value = "Sending ..."; Form_Cart.Button_VerifyEa.disabled = true; Span_EaCheckSum.innerHTML = ""; setTimeout(VerifyEmailAddress1, 1); }; function VerifyEmailAddress1() { var pStr_EmailAddress = Form_Cart.Text_EmailAddress.value.Trim(); var pStr_CheckEmailAddressFormat = CheckEmailAddressFormat(pStr_EmailAddress); if(pStr_CheckEmailAddressFormat == "") { var pStr = HttpPostFormText("/Order.htm", true, null, "Cmd=0&EmailAddress=" + pStr_EmailAddress.Base16Encode()).Trim(); if(pStr == "") pStr = "<span style='color:green;'>An email address verification code has been sent to sent to above email address.<br/></span>"; Span_EaCheckSum.innerHTML = pStr; } else Span_EaCheckSum.innerHTML = "<br/><span style='color:Red'>" + pStr_CheckEmailAddressFormat + "</span>"; Form_Cart.Button_VerifyEa.value = "Send verification code again"; Form_Cart.Button_VerifyEa.disabled = false; }; function Www3(B_CookieTransfer) { var pStr_Www3Host = "www3.alrightdeals.com"; var pStr_ToHost = "alrightdeals.com"; var pStr = location.protocol + "//" + (document.location.host == pStr_Www3Host ? pStr_ToHost : pStr_Www3Host); if(B_CookieTransfer) pStr += "/Cart.htm?" + document.cookie; else pStr += location.pathname + location.search; location = pStr; }; function CStoreConfig(Dw_DirCount, B_UspsUsa, B_UspsInternational, B_FedexHiAk, B_FedexInternational, d_HandlingFeeBase, d_HandlingFeeIncreament, d_48StatesGroundDiscount, d_48StatesAirDiscount, d_HiAkGroundDiscount, d_HiAkAirDiscount) { this.mDw_DirCount = Dw_DirCount; this.mB_UspsUsa = B_UspsUsa; this.mB_UspsInternational = B_UspsInternational; this.mB_FedexHiAk = B_FedexHiAk; this.mB_FedexInternational = B_FedexInternational; this.md_HandlingFeeBase = d_HandlingFeeBase; this.md_HandlingFeeIncreament = d_HandlingFeeIncreament; this.md_48StatesGroundDiscount = d_48StatesGroundDiscount; this.md_48StatesAirDiscount = d_48StatesAirDiscount; this.md_HiAkGroundDiscount = d_HiAkGroundDiscount; this.md_HiAkAirDiscount = d_HiAkAirDiscount; var pTextArea_SnLocation = document.getElementById("TextArea_S" + gpStoreConfig.length + "Location"); AssertPop(pTextArea_SnLocation); var pArray_Locations = pTextArea_SnLocation.value.split(" "); this.mpArray_Location = new Array(); var Dw_0 = 0; for(; Dw_0 < pArray_Locations.length; Dw_0++) { var pArray_Lacation = pArray_Locations[Dw_0].split("/"); var pLocation = new CLocation(); pLocation.mpStr_City = pArray_Lacation[0]; pLocation.mpStr_State2Char = pArray_Lacation[1]; pLocation.mpStr_Zip = (pArray_Lacation.length == 3 ? pArray_Lacation[2] : "00000"); pLocation.mB_Shipable = true; this.mpArray_Location[Dw_0] = pLocation; } this.mDw_WareHouseCount = Dw_0; }; function InitHeadJs() { gpStoreConfig = new Array(); gpStoreConfig[gpStoreConfig.length] = new CStoreConfig(1, F, F, T, F, 3, 2, .15, .45, .00, .15); gpStoreConfig[gpStoreConfig.length] = new CStoreConfig(2, F, F, T, F, 4, 2, .00, .00, .00, .05); gpStoreConfig[gpStoreConfig.length] = new CStoreConfig(1, F, F, F, F, 3, 2, .15, .25, .00, .05); gpStoreConfig[gpStoreConfig.length] = new CStoreConfig(1, F, F, T, F, 5, 2, .00, .00, .00, .00); gpStoreConfig[gpStoreConfig.length] = new CStoreConfig(1, F, F, T, F, 4, 2, .00, .00, .00, .05); gpStoreConfig[gpStoreConfig.length] = new CStoreConfig(3, F, F, T, F, 4, 2, .15, .35, .00, .15); gpStoreConfig[gpStoreConfig.length] = null; gpStoreConfig[gpStoreConfig.length] = null; gpStoreConfig[gpStoreConfig.length] = null; gpStoreConfig[gpStoreConfig.length] = null; gpStoreConfig[gpStoreConfig.length] = new CStoreConfig(0, T, T, T, T, 0, 0, .15, .00, .00, .00); gpStoreConfig[gpStoreConfig.length] = null; gpStoreConfig[gpStoreConfig.length] = null; gpStoreConfig[gpStoreConfig.length] = null; gpCart = new CCart(); gpCart.Init(); }; var gpDiWeightExtraFactor = [ ["Case", "Monitor & Display", 0.3], ["Cases", "Rack Mount", "TV", 0.3], ["xxxx", 0.5], ["Cases", "Rack Mount", "TV", 0.3], ["xxxx", 0.5], ["Monitor / Display / Projector", 0.3], ["", 0.3], ["", 0.3], ["", 0.3], ["", 0.3], ["", 0.3], ]; function AddThisProductToCart() { var i_Quantity = parseInt(Form_This.Text_Qunatity.value); if(!isNaN(i_Quantity)) { gpCart.Add(gpItem.mpStr_FullKey, i_Quantity, 0, "", 0.0); location.href = "/Cart.htm"; } else { Span_QuantityError.innerHTML = "Qunatity error."; } return true; }; function EbayPay() { Form_Cart.item_name_1.value = "[e" + "Bay:" + Form_Cart.EbayId.value + "] " + Form_Cart.item_name_1.value; Form_Cart.action = "https://checkout.google.com/cws/v2/Merchant/" + gpStr_Merchant + "/checkoutForm"; Form_Cart.submit(); }; function SearchSubmit() { open("/?" + Form_Search.Text_Search.value + "Filter=Search", "_self"); return false; }; function GbSearch(pStr_Searchee) { var pStr = "http://www.google.com/products?q=alrightdeals+" + encodeURI(pStr_Searchee) + "&hl=en&aq=f"; open(pStr, "_blank"); } function CElement() { var mpStr_Key; var mpObj; }; function CCollection() { CCollection.prototype.Get = function (pStr_Key) { var p_Element = null; for(var i = 0; i < this.length; i++) { if(pCollection[i].mpStr_Key == pStr_Key) { p_Element = this[i]; break; } } return p_Element; } }; var gpStr_Ip; var gpArray_UspsCountry; var gpItem; var gpTaxes_Meta; var gpArray_S0Ip; var gpResalePermit; var gpStoreConfig; var gpCart; var gDw_LeftWidth = 0; var gd_MinSpecialOrder = 100.0; var gDw_CartItemIndexStart = 1; var gB_FalseIeTrueFireFox = (navigator.userAgent.indexOf("MSIE") == -1 ? true : false); var gDw_Protocol_0Local_1Http = location.protocol.substr(0, 4).toUpperCase() == "HTTP" ? 1 : 0; var gB_AssertPopSent = false; var gpStr_CartLines = ""; var gpStr_CompanyName = "AlrightDeals"; var gpStr_SiteName = gpStr_CompanyName; var gpStr_CategoryDir = "/zCategory/"; var gpStr_Merchant = "7480" + "3956" + "0162" + "909"; var gpStr_GbAuthor = "3521431"; if(document.getElementById("Meta_Ip")) gpStr_Ip = Meta_Ip.content; var gB_IpLocalHost = gpStr_Ip == "127.0.0.1"; var gd_GroundRiseFuelSurcharge = 0.1; var gd_AirRiseFuelSurcharge = 0.15; var gpArray_Menu = new Array(); var gpCategory = new CCategory(); var F = false; var T = true; 