PageRenderTime 73ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 1ms

/application/views/pages/admin/cart.php

https://bitbucket.org/chadsaun/ifrogz-panel
PHP | 5364 lines | 5076 code | 77 blank | 211 comment | 1178 complexity | 5d52e3fac2eeb3ca5f410d9b2603e523 MD5 | raw file
  1. <?php
  2. include('init.php');
  3. if ( ! defined('KOHANA_EXTERNAL_MODE')) {
  4. define('KOHANA_EXTERNAL_MODE', TRUE);
  5. }
  6. include_once(DOCROOT.'index.php');
  7. session_register('chads_coupons');
  8. session_register('shp_method');
  9. session_register('hasrelated');
  10. //This code is copyright (c) Internet Business Solutions SL, all rights reserved.
  11. //The contents of this file are protect under law as the intellectual property of Internet
  12. //Business Solutions SL. Any use, reproduction, disclosure or copying of any kind
  13. //without the express and written permission of Internet Business Solutions SL is forbidden.
  14. //Author: Vince Reid, vince@virtualred.net
  15. //include(APPPATH.'views/pages/admin/uspsshipping.php');
  16. //echo '<p>Coupons = '.$_SESSION["couponapply"].'</p>';
  17. function vrxmlencode($xmlstr){
  18. $xmlstr = str_replace('&', '&amp;', $xmlstr);
  19. $xmlstr = str_replace('<', '&lt;', $xmlstr);
  20. $xmlstr = str_replace('>', '&gt;', $xmlstr);
  21. $xmlstr = str_replace("'", '&apos;', $xmlstr);
  22. return(str_replace('"', '&quot;', $xmlstr));
  23. } //echo '<strong>mode:</strong>'.$_POST["mode"];
  24. if (@$cartisincluded!=TRUE) {
  25. include(APPPATH.'views/pages/admin/uspsshipping.php');
  26. include(DOCROOT.'includes/splitorder.php');
  27. }
  28. //showarray($_POST);
  29. $cartEmpty=FALSE;
  30. $isInStock=TRUE;
  31. $outofstockreason=0;
  32. if(@$dateadjust=="") $dateadjust=0;
  33. $errormsg = "";
  34. $demomode = FALSE;
  35. $WSP = "";
  36. $OWSP = "";
  37. $nodiscounts=FALSE;
  38. $maxshipoptions=20;
  39. $success=TRUE;
  40. $checkIntOptions=FALSE;
  41. $alldata = "";
  42. $shipMethod = "";
  43. $shipping = 0;
  44. $iTotItems = 0;
  45. $iWeight = 0;
  46. $countryTaxRate=0;
  47. $stateTaxRate=0;
  48. $countryTax=0;
  49. $stateTax=0;
  50. $stateAbbrev="";
  51. $international = "";
  52. $thePQuantity = 0;
  53. $thePWeight = 0;
  54. $totalquantity = 0;
  55. $statetaxfree = 0;
  56. $countrytaxfree = 0;
  57. $shipfreegoods = 0;
  58. $totalgoods = 0;
  59. $somethingToShip = FALSE;
  60. $freeshippingapplied = FALSE;
  61. $gotcpncode=FALSE;
  62. $isstandardship = FALSE;
  63. $numshipoptions=0;
  64. $homecountry = FALSE;
  65. $freeshipamnt = 0;
  66. $rowcounter = 0;
  67. $paypalexpress=FALSE;
  68. $token = '';
  69. $ppexpresscancel=FALSE;
  70. $appliedcouponname = $ordAVS = $ordCVV = $stateAbbrev = $international = '';
  71. $appliedcouponamount = $totalquantity = $statetaxfree = $countrytaxfree = $shipfreegoods = $totalgoods = 0;
  72. if(@$cartisincluded != TRUE){
  73. if(@$_SERVER['CONTENT_LENGTH'] != '' && $_SERVER['CONTENT_LENGTH'] > 10000) exit();
  74. $cartisincluded=FALSE;
  75. //$cpncode = trim(str_replace("'",'',@$_REQUEST['cpncode']));
  76. if(!empty($_SESSION['os'])) $cpncode=$_SESSION['os'];
  77. else $cpncode = trim(str_replace("'","",@$_POST["cpncode"]));
  78. if(@$_POST['payerid'] != '') $payerid = $_POST['payerid']; else $payerid = '';
  79. //$token = trim(@$_REQUEST['token']);
  80. if(trim(@$_POST["token"]) != '')
  81. $token = trim(@$_POST["token"]);
  82. elseif(trim(@$_GET["token"]) != '')
  83. $token = trim(@$_GET["token"]);
  84. if(trim(@$_POST['sessionid']) != '') $thesessionid=str_replace("'",'',trim($_POST['sessionid'])); else $thesessionid=session_id();
  85. $theid = mysql_real_escape_string(trim(@$_POST['id']));
  86. $checkoutmode = trim(@$_POST['mode']);
  87. $shippingpost = trim(@$_POST['shipping']);
  88. $commerciallocpost = trim(@$_POST['commercialloc']);
  89. $wantinsurancepost = trim(@$_POST['wantinsurance']);
  90. $payproviderpost = trim(@$_POST['payprovider']);
  91. }
  92. //if(@$_POST['payerid'] != '') $payerid = $_POST['payerid']; else $payerid = '';
  93. //if(trim(@$_POST["sessionid"]) != "") $thesessionid=trim($_POST["sessionid"]); else $thesessionid=session_id();
  94. if(@$_SESSION["clientUser"] != ""){
  95. if(($_SESSION["clientActions"] & 8) == 8){
  96. $WSP = "pWholesalePrice AS ";
  97. if(@$wholesaleoptionpricediff==TRUE) $OWSP = 'optWholesalePriceDiff AS ';
  98. if(@$nowholesalediscounts==TRUE) $nodiscounts=TRUE;
  99. }
  100. if(($_SESSION["clientActions"] & 16) == 16){
  101. $WSP = $_SESSION["clientPercentDiscount"] . "*pPrice AS ";
  102. if(@$wholesaleoptionpricediff==TRUE) $OWSP = $_SESSION["clientPercentDiscount"] . '*optPriceDiff AS ';
  103. if(@$nowholesalediscounts==TRUE) $nodiscounts=TRUE;
  104. }
  105. }
  106. //$theid = mysql_real_escape_string(trim(@$_POST["id"]));
  107. $alreadygotadmin = getadminsettings();
  108. $origShipType=$shipType;
  109. if(@$alternateratesups != "" || @$alternateratesusps != "" || @$alternateratesweightbased != "" || @$alternateratescanadapost !="") $alternaterates=TRUE; else $alternaterates=FALSE;
  110. if(@$_POST["altrates"] != ""){
  111. $altrate=(int)@$_POST["altrates"];
  112. if(@$alternateratesups != "" && $altrate==4) $shipType=4;
  113. if(@$alternateratesusps != "" && $altrate==3) $shipType=3;
  114. if(@$alternateratesweightbased != "" && $altrate==2) $shipType=2;
  115. if(@$alternateratescanadapost != "" && $altrate==6) $shipType=6;
  116. }
  117. $ordPayProvider = str_replace("'",'',trim(@$_POST["payprovider"]));
  118. if($ordPayProvider != "") eval('$handling += @$handlingcharge' . $ordPayProvider . ';');
  119. if(@$_SESSION["couponapply"] != ""){
  120. mysql_query("UPDATE coupons SET cpnNumAvail=cpnNumAvail+1 WHERE cpnID IN (0" . $_SESSION["couponapply"] . ")") or print(mysql_error());
  121. $_SESSION["couponapply"]="";
  122. }
  123. function show_states($tstate){
  124. global $xxOutState,$allstates,$numallstates;
  125. $foundmatch=FALSE;
  126. print "<option value=''>Choose...</option>";
  127. print "<option value=''>" . $xxOutState . "</option>";
  128. for($index=0;$index<$numallstates;$index++){
  129. print '<option value="' . str_replace('"','&quot;',$allstates[$index]["stateAbbrev"]) . '"';
  130. if($tstate==$allstates[$index]["stateAbbrev"]){
  131. print ' selected';
  132. $foundmatch=TRUE;
  133. }
  134. print '>' . $allstates[$index]["stateAbbrev"] . "</option>\n";
  135. }
  136. return $foundmatch;
  137. }
  138. function show_countries($tcountry){
  139. global $numhomecountries,$nonhomecountries,$allcountries,$numallcountries;
  140. for($index=0;$index<$numallcountries;$index++){
  141. print '<option value="' . str_replace('"','&quot;',$allcountries[$index]["countryName"]) . '"';
  142. if($tcountry==$allcountries[$index]["countryName"]) print " selected";
  143. print '>' . $allcountries[$index][2] . "</option>\n";
  144. }
  145. }
  146. function checkuserblock($thepayprov){
  147. global $blockmultipurchase;
  148. $multipurchaseblocked=FALSE;
  149. if($thepayprov != "7" && $thepayprov != "13"){
  150. $theip = @$_SERVER["REMOTE_ADDR"];
  151. if($theip == "") $theip = "none";
  152. if(@$blockmultipurchase != ""){
  153. mysql_query("DELETE FROM multibuyblock WHERE lastaccess<'" . date("Y-m-d H:i:s", time()-(60*60*24)) . "'") or print(mysql_error());
  154. $sSQL = "SELECT ssdenyid,sstimesaccess FROM multibuyblock WHERE ssdenyip = '" . trim(mysql_real_escape_string($theip)) . "'";
  155. $result = mysql_query($sSQL) or print(mysql_error());
  156. if($rs = mysql_fetch_array($result)){
  157. mysql_query("UPDATE multibuyblock SET sstimesaccess=sstimesaccess+1,lastaccess='" . date("Y-m-d H:i:s", time()) . "' WHERE ssdenyid=" . $rs["ssdenyid"]) or print(mysql_error());
  158. if($rs["sstimesaccess"] >= $blockmultipurchase) $multipurchaseblocked=TRUE;
  159. }else{
  160. mysql_query("INSERT INTO multibuyblock (ssdenyip,lastaccess) VALUES ('" . trim(mysql_real_escape_string($theip)) . "','" . date("Y-m-d H:i:s", time()) . "')") or print(mysql_error());
  161. }
  162. mysql_free_result($result);
  163. }
  164. if($theip == "none")
  165. $sSQL = "SELECT TOP 1 dcid FROM ipblocking";
  166. else
  167. $sSQL = "SELECT dcid FROM ipblocking WHERE (dcip1=" . ip2long($theip) . " AND dcip2=0) OR (dcip1 <= " . ip2long($theip) . " AND " . ip2long($theip) . " <= dcip2 AND dcip2 <> 0)";
  168. $result = mysql_query($sSQL) or print(mysql_error());
  169. if(mysql_num_rows($result) > 0)
  170. $multipurchaseblocked = TRUE;
  171. }
  172. return($multipurchaseblocked);
  173. }
  174. function checkpricebreaks($cpbpid,$origprice){
  175. global $WSP;
  176. $newprice="";
  177. $sSQL = "SELECT SUM(cartQuantity) AS totquant FROM cart WHERE cartCompleted=0 AND cartSessionID='" . session_id() . "' AND cartProdID='".mysql_real_escape_string($cpbpid)."'";
  178. $result = mysql_query($sSQL) or print(mysql_error());
  179. $rs=mysql_fetch_assoc($result);
  180. if(is_null($rs["totquant"])) $thetotquant=0; else $thetotquant = $rs["totquant"];
  181. $sSQL="SELECT ".$WSP."pPrice FROM pricebreaks WHERE ".$thetotquant.">=pbQuantity AND pbProdID='".mysql_real_escape_string($cpbpid)."' ORDER BY " . ($WSP==""?"pPrice":str_replace(' AS ','',$WSP));
  182. $result = mysql_query($sSQL) or print(mysql_error());
  183. if($rs=mysql_fetch_assoc($result))
  184. $thepricebreak = $rs["pPrice"];
  185. else
  186. $thepricebreak = $origprice;
  187. $sSQL = "UPDATE cart SET cartProdPrice=".$thepricebreak." WHERE cartAltPrice=-1 AND cartCompleted=0 AND cartSessionID='" . session_id() . "' AND cartProdID='".mysql_real_escape_string($cpbpid)."'";
  188. mysql_query($sSQL) or print(mysql_error());
  189. }
  190. function multShipWeight($theweight, $themul){
  191. return(($theweight*$themul)/100.0);
  192. }
  193. function insuranceandtaxaddedtoshipping(){
  194. global $shipinsuranceamt,$shippingpost,$somethingToShip,$wantinsurance,$addshippinginsurance,$maxshipoptions;
  195. global $totalgoods,$shipping,$taxShipping,$shippingpost,$stateTaxRate,$countryTaxRate,$intShipping;
  196. if(is_numeric(@$shipinsuranceamt) && $shippingpost=='' && $somethingToShip){
  197. if(($wantinsurance=="Y" && @$addshippinginsurance==2) || @$addshippinginsurance==1){
  198. for($index3=0; $index3 < $maxshipoptions; $index3++)
  199. $intShipping[$index3][2] += (((double)$totalgoods*(double)$shipinsuranceamt)/100.0);
  200. $shipping += (((double)$totalgoods*(double)$shipinsuranceamt)/100.0);
  201. }elseif(($wantinsurance=="Y" && @$addshippinginsurance==-2) || @$addshippinginsurance==-1){
  202. for($index3=0; $index3 < $maxshipoptions; $index3++)
  203. $intShipping[$index3][2] += $shipinsuranceamt;
  204. $shipping += $shipinsuranceamt;
  205. }
  206. }
  207. if(@$taxShipping==1 && $shippingpost==''){
  208. for($index3=0; $index3 < $maxshipoptions; $index3++)
  209. $intShipping[$index3][2] += ((double)$intShipping[$index3][2]*((double)$stateTaxRate+(double)$countryTaxRate))/100.0;
  210. $shipping += ((double)$shipping*((double)$stateTaxRate+(double)$countryTaxRate))/100.0;
  211. }
  212. }
  213. function calculatetaxandhandling(){
  214. global $handlingchargepercent,$handling,$totalgoods,$shipping,$totaldiscounts,$freeshipamnt,$taxHandling,$stateTaxRate,$countryTaxRate,$taxShipping;
  215. global $stateTax,$countryTax,$canadataxsystem,$shipCountryID,$shipStateAbbrev,$usehst,$statetaxfree,$countrytaxfree,$proratashippingtax,$perproducttaxrate;
  216. if(@$handlingchargepercent != '') $handling += ((($totalgoods + $shipping + $handling) - ($totaldiscounts + $freeshipamnt)) * $handlingchargepercent / 100.0);
  217. if(@$taxHandling==1) $handling += ((double)$handling*((double)$stateTaxRate+(double)$countryTaxRate))/100.0;
  218. if(@$canadataxsystem==true && $shipCountryID==2 && ($shipStateAbbrev=="NB" || $shipStateAbbrev=="NF" || $shipStateAbbrev=="NS")) $usehst=true; else $usehst=false;
  219. if(@$canadataxsystem==true && $shipCountryID==2 && ($shipStateAbbrev=="PE" || $shipStateAbbrev=="QC")){
  220. $statetaxable = 0;
  221. $countrytaxable = 0;
  222. if(@$taxShipping==2 && ($shipping - $freeshipamnt > 0)){
  223. if(@$proratashippingtax==TRUE){
  224. if($totalgoods>0) $statetaxable += (((double)$totalgoods-((double)$totaldiscounts+(double)$statetaxfree)) / $totalgoods) * ((double)$shipping-(double)$freeshipamnt);
  225. }else
  226. $statetaxable += ((double)$shipping-(double)$freeshipamnt);
  227. $countrytaxable += ((double)$shipping-(double)$freeshipamnt);
  228. }
  229. if(@$taxHandling==2){
  230. $statetaxable += (double)$handling;
  231. $countrytaxable += (double)$handling;
  232. }
  233. if($totalgoods>0){
  234. $statetaxable += ((double)$totalgoods-((double)$totaldiscounts+(double)$statetaxfree));
  235. $countrytaxable += ((double)$totalgoods-((double)$totaldiscounts+(double)$countrytaxfree));
  236. }
  237. $countryTax = $countrytaxable*(double)$countryTaxRate/100.0;
  238. $stateTax = ($statetaxable+(double)$countryTax)*(double)$stateTaxRate/100.0;
  239. }else{
  240. if($totalgoods>0){
  241. $stateTax = ((double)$totalgoods-((double)$totaldiscounts+(double)$statetaxfree))*(double)$stateTaxRate/100.0;
  242. if(@$perproducttaxrate != TRUE) $countryTax = ((double)$totalgoods-((double)$totaldiscounts+(double)$countrytaxfree))*(double)$countryTaxRate/100.0;
  243. }
  244. if(@$taxShipping==2 && ($shipping - $freeshipamnt > 0)){
  245. if(@$proratashippingtax==TRUE){
  246. if($totalgoods>0) $stateTax += (((double)$totalgoods-((double)$totaldiscounts+(double)$statetaxfree)) / $totalgoods) * (((double)$shipping-(double)$freeshipamnt)*(double)$stateTaxRate/100.0);
  247. }else
  248. $stateTax += (((double)$shipping-(double)$freeshipamnt)*(double)$stateTaxRate/100.0);
  249. $countryTax += (((double)$shipping-(double)$freeshipamnt)*(double)$countryTaxRate/100.0);
  250. }
  251. if(@$taxHandling==2){
  252. $stateTax += ((double)$handling*(double)$stateTaxRate/100.0);
  253. $countryTax += ((double)$handling*(double)$countryTaxRate/100.0);
  254. }
  255. }
  256. if($stateTax < 0) $stateTax = 0;
  257. if($countryTax < 0) $countryTax = 0;
  258. }
  259. function subtaxesfordiscounts($theExemptions, $discAmount){
  260. global $statetaxfree,$countrytaxfree,$shipfreegoods;
  261. if(($theExemptions & 1)==1) $statetaxfree -= $discAmount;
  262. if(($theExemptions & 2)==2) $countrytaxfree -= $discAmount;
  263. if(($theExemptions & 4)==4) $shipfreegoods -= $discAmount;
  264. }
  265. function addadiscount($resset, $groupdiscount, $dscamount, $subcpns, $cdcpncode, $statetaxhandback, $countrytaxhandback, $theexemptions, $thetax){
  266. global $totaldiscounts, $cpnmessage, $statetaxfree, $countrytaxfree, $gotcpncode, $perproducttaxrate, $countryTax , $cpnIDs , $appliedcouponname , $appliedcouponamount,$thesessionid;
  267. $totaldiscounts += $dscamount;
  268. if($groupdiscount){
  269. $statetaxfree -= ($dscamount * $statetaxhandback);
  270. $countrytaxfree -= ($dscamount * $countrytaxhandback);
  271. }else{
  272. subtaxesfordiscounts($theexemptions, $dscamount);
  273. if(@$perproducttaxrate) $countryTax -= (($dscamount * $thetax) / 100.0);
  274. }
  275. $usecoupon=TRUE;
  276. //echo '$cdcpncode='.$cdcpncode;
  277. $cpnDiscount=substr($resset['cpnWorkingName'],0,10);
  278. //echo '$cpnDiscount='.$cpnDiscount;
  279. $sql_dd="SELECT * FROM daily_discounts WHERE starttime LIKE '".$cpnDiscount."%'";
  280. //echo $sql_dd;
  281. $result_dd=mysql_query($sql_dd);
  282. if(mysql_num_rows($result_dd)>0){
  283. $row_dd=mysql_fetch_assoc($result_dd);
  284. //echo 'starttime='.$row_dd['starttime'];
  285. $sql_d="SELECT cartDateAdded FROM cart WHERE cartSessionID='".$thesessionid."' AND cartDateAdded<'".$row_dd['starttime']."'";
  286. //echo $sql_d;
  287. $result_d=mysql_query($sql_d);
  288. if(mysql_num_rows($result_d)>0){
  289. echo '<div style="color:#FF0000; font-weight:bold; margin:4px; font-size:14px;"> You must add the Snatch It product to the cart after the green light flashes to get it for free.</div>';
  290. $dscamount=0;
  291. $totaldiscounts=0;
  292. $usecoupon=FALSE;
  293. }
  294. }
  295. //echo '$dscamount='.$dscamount;
  296. //echo '$totaldiscounts='.$totaldiscounts;
  297. //$dscamount=0;
  298. //$totaldiscounts=0;
  299. if($usecoupon){
  300. //echo 'used';
  301. if(stristr($cpnmessage,"<br />" . $resset[getlangid("cpnName",1024)] . "<br />") == FALSE) $cpnmessage .= $resset[getlangid("cpnName",1024)] . "<br />";
  302. // added Blake 1/2/07
  303. // add discount ids to order
  304. $comma=",";
  305. if(empty($cpnIDs)) $comma=" ";
  306. $cpnIDs .= $comma.$resset["cpnID"];
  307. // end
  308. if($subcpns){
  309. $theres = mysql_query("SELECT cpnID FROM coupons WHERE cpnNumAvail>0 AND cpnNumAvail<30000000 AND cpnID=" . $resset["cpnID"]) or print(mysql_error());
  310. if($theresset = mysql_fetch_assoc($theres)) @$_SESSION["couponapply"] .= "," . $resset["cpnID"];
  311. mysql_query("UPDATE coupons SET cpnNumAvail=cpnNumAvail-1 WHERE cpnNumAvail>0 AND cpnNumAvail<30000000 AND cpnID=" . $resset["cpnID"]) or print(mysql_error());
  312. }
  313. if($cdcpncode!="" && strtolower(trim($resset["cpnNumber"]))==strtolower($cdcpncode)) {$gotcpncode=TRUE;$appliedcouponname = $resset['cpnName']; $appliedcouponamount = $dscamount; }
  314. }
  315. }
  316. function timesapply($taquant,$tathresh,$tamaxquant,$tamaxthresh,$taquantrepeat,$tathreshrepeat){
  317. if($taquantrepeat==0 && $tathreshrepeat==0)
  318. $tatimesapply = 1.0;
  319. elseif($tamaxquant==0)
  320. $tatimesapply = (int)(($tathresh - $tamaxthresh) / $tathreshrepeat)+1;
  321. elseif($tamaxthresh==0)
  322. $tatimesapply = (int)(($taquant - $tamaxquant) / $taquantrepeat)+1;
  323. else{
  324. $ta1 = (int)(($taquant - $tamaxquant) / $taquantrepeat)+1;
  325. $ta2 = (int)(($tathresh - $tamaxthresh) / $tathreshrepeat)+1;
  326. if($ta2 < $ta1) $tatimesapply = $ta2; else $tatimesapply = $ta1;
  327. }
  328. return($tatimesapply);
  329. }
  330. function calculatediscounts($cdgndtot, $subcpns, $cdcpncode){
  331. global $totaldiscounts, $cpnmessage, $statetaxfree, $countrytaxfree, $nodiscounts, $WSP, $cpncode, $gotcpncode, $thesessionid, $countryTaxRate, $countryTax;
  332. $totaldiscounts = 0;
  333. $cpnmessage = "<br />";
  334. $cdtotquant=0;
  335. if($cdgndtot==0){
  336. $statetaxhandback = 0.0;
  337. $countrytaxhandback = 0.0;
  338. }else{
  339. $statetaxhandback = 1.0 - (($cdgndtot - $statetaxfree) / $cdgndtot);
  340. $countrytaxhandback = 1.0 - (($cdgndtot - $countrytaxfree) / $cdgndtot);
  341. }
  342. if(! $nodiscounts){
  343. $sSQL = "SELECT cartProdID,SUM(cartProdPrice*cartQuantity) AS thePrice,SUM(cartQuantity) AS sumQuant,pSection,COUNT(cartProdID),pExemptions,p_iscert,pTax FROM products INNER JOIN cart ON cart.cartProdID=products.pID WHERE cartCompleted=0 AND cartSessionID='" . $thesessionid . "' GROUP BY cartProdID,pSection,pExemptions,pTax";
  344. $cdresult = mysql_query($sSQL) or print(mysql_error());
  345. $cdadindex=0;
  346. $cdrsPriceCerts=0;
  347. while($cdrs = mysql_fetch_assoc($cdresult)){
  348. $cdalldata[$cdadindex++]=$cdrs;
  349. }
  350. for($index=0; $index<$cdadindex; $index++){
  351. $cdrs = $cdalldata[$index];
  352. //echo '='.$cdrs["p_iscert"];
  353. if($cdrs['p_iscert'] == 0 ) {
  354. $sSQL = "SELECT SUM(coPriceDiff*cartQuantity) AS totOpts FROM cart LEFT OUTER JOIN cartoptions ON cart.cartID=cartoptions.coCartID WHERE cartCompleted=0 AND cartSessionID='" . $thesessionid . "' AND cartProdID='" . $cdrs["cartProdID"] . "'";
  355. $cdresult2 = mysql_query($sSQL) or print(mysql_error());
  356. $cdrs2 = mysql_fetch_assoc($cdresult2);
  357. if(! is_null($cdrs2["totOpts"])) $cdrs["thePrice"] += $cdrs2["totOpts"];
  358. $cdtotquant += $cdrs["sumQuant"];
  359. $topcpnids = $cdrs["pSection"];
  360. $thetopts = $cdrs["pSection"];
  361. if(is_null($cdrs["pTax"])) $cdrs["pTax"] = $countryTaxRate;
  362. for($cpnindex=0; $cpnindex<= 10; $cpnindex++){
  363. if($thetopts==0)
  364. break;
  365. else{
  366. $sSQL = "SELECT topSection FROM sections WHERE sectionID=" . $thetopts;
  367. $result2 = mysql_query($sSQL) or print(mysql_error());
  368. if($rs2 = mysql_fetch_assoc($result2)){
  369. $thetopts = $rs2["topSection"];
  370. $topcpnids .= "," . $thetopts;
  371. }else
  372. break;
  373. }
  374. }
  375. $sSQL = "SELECT DISTINCT cpnID,cpnDiscount,cpnWorkingName,cpnType,cpnNumber,".getlangid("cpnName",1024).",cpnThreshold,cpnQuantity,cpnSitewide,cpnThresholdRepeat,cpnQuantityRepeat FROM coupons LEFT OUTER JOIN cpnassign ON coupons.cpnID=cpnassign.cpaCpnID WHERE cpnNumAvail > 0 AND cpnEndDate >= '" . date("Y-m-d H:i:s",time()) ."' AND cpnBeginDate <= '" . date("Y-m-d H:i:s",time()) ."' AND (cpnIsCoupon=0";
  376. if($cdcpncode != "") $sSQL .= " OR (cpnIsCoupon=1 AND cpnNumber='" . $cdcpncode . "')";
  377. $sSQL .= ") AND cpnThreshold<=" . $cdrs["thePrice"] . " AND (cpnThresholdMax>" . $cdrs["thePrice"] . " OR cpnThresholdMax=0) AND cpnQuantity<=" . $cdrs["sumQuant"] . " AND (cpnQuantityMax>" . $cdrs["sumQuant"] . " OR cpnQuantityMax=0) AND (cpnSitewide=0 OR cpnSitewide=2) AND ";
  378. $sSQL .= "(cpnSitewide=2 OR (cpaType=2 AND cpaAssignment='" . $cdrs["cartProdID"] . "') ";
  379. $sSQL .= "OR (cpaType=1 AND cpaAssignment IN ('" . str_replace(",","','",$topcpnids) . "')))";
  380. if(!empty($WSP)) $sSQL .= " AND (cpnIsWholesale=1)";
  381. else $sSQL .= " AND (cpnIsWholesale=0)";
  382. $result2 = mysql_query($sSQL) or print(mysql_error());
  383. while($rs2 = mysql_fetch_assoc($result2)){
  384. if($rs2["cpnType"]==1){ // Flat Rate Discount
  385. $thedisc = (double)$rs2["cpnDiscount"] * timesapply($cdrs["sumQuant"], $cdrs["thePrice"], $rs2["cpnQuantity"], $rs2["cpnThreshold"], $rs2["cpnQuantityRepeat"], $rs2["cpnThresholdRepeat"]);
  386. if($cdrs["thePrice"] < $thedisc) $thedisc = $cdrs["thePrice"];
  387. addadiscount($rs2, FALSE, $thedisc, $subcpns, $cdcpncode, $statetaxhandback, $countrytaxhandback, $cdrs["pExemptions"], $cdrs["pTax"]);
  388. }elseif($rs2["cpnType"]==2){ // Percentage Discount
  389. addadiscount($rs2, FALSE, (((double)$rs2["cpnDiscount"] * (double)$cdrs["thePrice"]) / 100.0), $subcpns, $cdcpncode, $statetaxhandback, $countrytaxhandback, $cdrs["pExemptions"], $cdrs["pTax"]);
  390. }
  391. }
  392. } else {
  393. $cdrsPriceCerts += $cdrs["thePrice"];
  394. }
  395. }
  396. $sSQL = "SELECT DISTINCT cpnID,cpnDiscount,cpnWorkingName,cpnType,cpnNumber,".getlangid("cpnName",1024).",cpnSitewide,cpnThreshold,cpnThresholdMax,cpnQuantity,cpnQuantityMax,cpnThresholdRepeat,cpnQuantityRepeat FROM coupons WHERE cpnNumAvail>0 AND cpnEndDate >= '" . date("Y-m-d H:i:s",time()) ."' AND cpnBeginDate <= '" . date("Y-m-d H:i:s",time()) ."' AND (cpnIsCoupon=0";
  397. if($cdcpncode != "") $sSQL .= " OR (cpnIsCoupon=1 AND cpnNumber='" . $cdcpncode . "')";
  398. $sSQL .= ") AND cpnThreshold<=" . $cdgndtot . " AND cpnQuantity<=" . $cdtotquant . " AND (cpnSitewide=1 OR cpnSitewide=3) AND (cpnType=1 OR cpnType=2)";
  399. if(!empty($WSP)) $sSQL .= " AND (cpnIsWholesale=1)";
  400. else $sSQL .= " AND (cpnIsWholesale=0)";
  401. $result2 = mysql_query($sSQL) or print(mysql_error());
  402. while($rs2 = mysql_fetch_assoc($result2)){
  403. $totquant = 0;
  404. $totprice = 0;
  405. if($rs2["cpnSitewide"]==3){
  406. $sSQL = "SELECT cpaAssignment FROM cpnassign WHERE cpaType=1 AND cpacpnID=" . $rs2["cpnID"];
  407. //echo $sSQL;
  408. $result3 = mysql_query($sSQL) or print(mysql_error());
  409. $secids = "";
  410. $addcomma = "";
  411. while($rs3 = mysql_fetch_assoc($result3)){
  412. $secids .= $addcomma . $rs3["cpaAssignment"];
  413. $addcomma = ",";
  414. }
  415. if($secids != ""){
  416. $secids = getsectionids($secids, FALSE);
  417. $sSQL = "SELECT SUM(cartProdPrice*cartQuantity) AS totPrice,SUM(cartQuantity) AS totQuant FROM products INNER JOIN cart ON cart.cartProdID=products.pID WHERE cartCompleted=0 AND cartSessionID='" . $thesessionid . "' AND products.pSection IN (" . $secids . ")";
  418. $result3 = mysql_query($sSQL) or print(mysql_error());
  419. $rs3 = mysql_fetch_assoc($result3);
  420. if(is_null($rs3["totPrice"])) $totprice = 0; else $totprice = $rs3["totPrice"];
  421. if(is_null($rs3["totQuant"])) $totquant=0; else $totquant = $rs3["totQuant"];
  422. $sSQL = "SELECT SUM(coPriceDiff*cartQuantity) AS optPrDiff FROM products INNER JOIN cart ON cart.cartProdID=products.pID LEFT OUTER JOIN cartoptions ON cart.cartID=cartoptions.coCartID WHERE cartCompleted=0 AND cartSessionID='" . $thesessionid . "' AND products.pSection IN (" . $secids . ")";
  423. $result3 = mysql_query($sSQL) or print(mysql_error());
  424. $rs3 = mysql_fetch_assoc($result3);
  425. if(! is_null($rs3["optPrDiff"])) $totprice = $totprice+$rs3["optPrDiff"];
  426. }
  427. }else{ // cpnSitewide==1
  428. $totquant = $cdtotquant;
  429. $totprice = $cdgndtot-$cdrsPriceCerts;
  430. }
  431. if($totquant > 0 && $rs2["cpnThreshold"] <= $totprice && ($rs2["cpnThresholdMax"] > $totprice || $rs2["cpnThresholdMax"]==0) && $rs2["cpnQuantity"] <= $totquant && ($rs2["cpnQuantityMax"] > $totquant || $rs2["cpnQuantityMax"]==0)){
  432. if($rs2["cpnType"]==1){ // Flat Rate Discount
  433. $thedisc = (double)$rs2["cpnDiscount"] * timesapply($totquant, $totprice, $rs2["cpnQuantity"], $rs2["cpnThreshold"], $rs2["cpnQuantityRepeat"], $rs2["cpnThresholdRepeat"]);
  434. if($totprice < $thedisc) $thedisc = $totprice;
  435. }elseif($rs2["cpnType"]==2){ // Percentage Discount
  436. $thedisc = ((double)$rs2["cpnDiscount"] * (double)$totprice) / 100.0;
  437. }
  438. addadiscount($rs2, TRUE, $thedisc, $subcpns, $cdcpncode, $statetaxhandback, $countrytaxhandback, 3, 0);
  439. if(@$perproducttaxrate && $cdgndtot > 0){
  440. for($index=0; $index<$cdadindex; $index++){
  441. $cdrs = $cdalldata[$index];
  442. if($rs2["cpnType"]==1) // Flat Rate Discount
  443. $applicdisc = $thedisc / ($cdtotquant / $cdrs["sumQuant"]);
  444. elseif($rs2["cpnType"]==2) // Percentage Discount
  445. $applicdisc = $thedisc / ($cdgndtot / $cdrs["thePrice"]);
  446. if(($cdrs["pExemptions"] & 2) != 2) $countryTax -= (($applicdisc * $cdrs["pTax"]) / 100.0);
  447. }
  448. }
  449. }
  450. }
  451. }
  452. if($statetaxfree < 0) $statetaxfree = 0;
  453. if($countrytaxfree < 0) $countrytaxfree = 0;
  454. $totaldiscounts = round($totaldiscounts, 2);
  455. }
  456. function calculateshippingdiscounts($subcpns){
  457. global $freeshippingapplied, $nodiscounts, $WSP, $totalgoods, $totalquantity, $cpncode, $freeshipapplies, $isstandardship, $cpnmessage, $shipping, $freeshipamnt, $gotcpncode, $cpnIDs;
  458. $freeshipamnt = 0;
  459. if(! $nodiscounts){
  460. $sSQL = "SELECT cpnID,".getlangid("cpnName",1024).",cpnNumber,cpnDiscount,cpnThreshold,cpnCntry FROM coupons WHERE cpnType=0 AND cpnSitewide=1 AND cpnNumAvail>0 AND cpnThreshold<=".$totalgoods." AND (cpnThresholdMax>".$totalgoods." OR cpnThresholdMax=0) AND cpnQuantity<=".$totalquantity." AND (cpnQuantityMax>".$totalquantity." OR cpnQuantityMax=0) AND cpnEndDate >= '" . date("Y-m-d H:i:s",time()) ."' AND cpnBeginDate <= '" . date("Y-m-d H:i:s",time()) ."' AND (cpnIsCoupon=0 OR (cpnIsCoupon=1 AND cpnNumber='".$cpncode."'))";
  461. if(!empty($WSP)) $isWholesale=1;
  462. else $isWholesale=0;
  463. $sSQL .= " AND (cpnIsWholesale=".$isWholesale.")";
  464. $result = mysql_query($sSQL) or print(mysql_error());
  465. while($rs=mysql_fetch_assoc($result)){
  466. if($freeshipapplies || (int)$rs["cpnCntry"]==0){
  467. if($cpncode!="" && strtolower(trim($rs["cpnNumber"]))==strtolower($cpncode)) $gotcpncode=TRUE;
  468. if($isstandardship){
  469. if(stristr($cpnmessage,"<br />" . $rs[getlangid("cpnName",1024)] . "<br />") == FALSE) $cpnmessage .= $rs[getlangid("cpnName",1024)] . "<br />";
  470. // added Blake 1/2/07
  471. // add discount ids to order
  472. $comma=",";
  473. if(empty($cpnIDs)) $comma=" ";
  474. $cpnIDs .= $comma.$rs["cpnID"];
  475. // end
  476. $freeshipamnt = $shipping;
  477. if($subcpns){
  478. $theres = mysql_query("SELECT cpnID FROM coupons WHERE cpnNumAvail>0 AND cpnNumAvail<30000000 AND (cpnIsWholesale=".$isWholesale.") AND cpnID=" . $rs["cpnID"]) or print(mysql_error());
  479. if($theresset = mysql_fetch_assoc($theres)) @$_SESSION["couponapply"] .= "," . $rs["cpnID"];
  480. mysql_query("UPDATE coupons SET cpnNumAvail=cpnNumAvail-1 WHERE cpnNumAvail>0 AND cpnNumAvail<30000000 AND cpnID=" . $rs["cpnID"]) or print(mysql_error());
  481. }
  482. }
  483. $freeshippingapplied = true;
  484. }
  485. }
  486. mysql_free_result($result);
  487. }
  488. if($freeshipamnt > $shipping) $freeshipamnt = $shipping;
  489. }
  490. function initshippingmethods(){
  491. global $shipType,$allzones,$numzones,$splitUSZones,$shiphomecountry,$numshipoptions,$pzFSA,$intShipping,$success,$errormsg,$commercialloc;
  492. global $uspsmethods,$numuspsmeths,$international,$shipcountry,$maxshipoptions,$origCountry,$willpickuptext,$shipstate,$xxNoMeth,$shipinsuranceamt;
  493. global $sXML,$uspsUser,$uspsPw,$upsAccess,$upsUser,$upsPw,$upspickuptype,$origZip,$origCountryCode,$destZip,$shipCountryCode,$adminCanPostUser;
  494. for($i=0; $i < $maxshipoptions; $i++){
  495. $intShipping[$i][0]="";
  496. $intShipping[$i][1]="";
  497. $intShipping[$i][2]=0;
  498. $intShipping[$i][3]=0;
  499. }
  500. if($shipcountry != $origCountry){
  501. $international = "Intl";
  502. $willpickuptext = "";
  503. }
  504. if($shipType==2 || $shipType==5){ // Weight / Price based shipping
  505. $allzones="";
  506. $index=0;
  507. $numzones=0;
  508. $zoneid=0;
  509. if($splitUSZones && $shiphomecountry)
  510. $sSQL = "SELECT pzID,pzMultiShipping,pzFSA,pzMethodName1,pzMethodName2,pzMethodName3,pzMethodName4,pzMethodName5 FROM states INNER JOIN postalzones ON postalzones.pzID=states.stateZone WHERE stateAbbrev='" . mysql_real_escape_string($shipstate) . "'";
  511. else
  512. $sSQL = "SELECT pzID,pzMultiShipping,pzFSA,pzMethodName1,pzMethodName2,pzMethodName3,pzMethodName4,pzMethodName5 FROM countries INNER JOIN postalzones ON postalzones.pzID=countries.countryZone WHERE countryName='" . mysql_real_escape_string($shipcountry) . "'";
  513. $result = mysql_query($sSQL) or print(mysql_error());
  514. if($rs = mysql_fetch_array($result)){
  515. $zoneid=$rs["pzID"];
  516. $numshipoptions=$rs["pzMultiShipping"]+1;
  517. $pzFSA = $rs["pzFSA"];
  518. for($index3=0; $index3 < $numshipoptions; $index3++){
  519. $intShipping[$index3][0]=$rs["pzMethodName" . ($index3+1)];
  520. $intShipping[$index3][2]=0;
  521. $intShipping[$index3][3]=TRUE;
  522. }
  523. }else{
  524. $success=FALSE;
  525. $errormsg = "Country / state shipping zone is unassigned.";
  526. }
  527. mysql_free_result($result);
  528. $sSQL = "SELECT zcWeight,zcRate,zcRate2,zcRate3,zcRate4,zcRate5 FROM zonecharges WHERE zcZone=" . $zoneid . " ORDER BY zcWeight";
  529. $result = mysql_query($sSQL) or print(mysql_error());
  530. while($rs = mysql_fetch_row($result))
  531. $allzones[$index++] = $rs;
  532. mysql_free_result($result);
  533. $numzones=$index;
  534. }elseif($shipType==3 || $shipType==4 || $shipType==6){ // USPS / UPS / Canada Post
  535. $uspsmethods="";
  536. $numuspsmeths=0;
  537. if($shipType==3){
  538. $sSQL = "SELECT uspsMethod,uspsFSA,uspsShowAs FROM uspsmethods WHERE uspsID<100 AND uspsUseMethod=1 AND uspsLocal=";
  539. if($international=="") $sSQL .= "1"; else $sSQL .= "0";
  540. }elseif($shipType==4){
  541. $shipinsuranceamt='';
  542. $sSQL = "SELECT uspsMethod,uspsFSA,uspsShowAs FROM uspsmethods WHERE uspsID>100 AND uspsID<200 AND uspsUseMethod=1";
  543. }else
  544. $sSQL = "SELECT uspsMethod,uspsFSA,uspsShowAs FROM uspsmethods WHERE uspsID>200 AND uspsID<300 AND uspsUseMethod=1";
  545. $result = mysql_query($sSQL) or print(mysql_error());
  546. if(mysql_num_rows($result) > 0){
  547. while($rs = mysql_fetch_row($result))
  548. $uspsmethods[$numuspsmeths++] = $rs;
  549. }else{
  550. $success=FALSE;
  551. $errormsg = "Admin Error: " . $xxNoMeth;
  552. }
  553. mysql_free_result($result);
  554. }
  555. if($shipType==3)
  556. $sXML = "<" . $international . "RateRequest USERID=\"" . $uspsUser . "\" PASSWORD=\"" . $uspsPw . "\">";
  557. elseif($shipType==4){
  558. $sXML = "<?xml version=\"1.0\"?><AccessRequest xml:lang=\"en-US\"><AccessLicenseNumber>" . $upsAccess . "</AccessLicenseNumber><UserId>" . $upsUser . "</UserId><Password>" . $upsPw . "</Password></AccessRequest><?xml version=\"1.0\"?>";
  559. $sXML .= "<RatingServiceSelectionRequest xml:lang=\"en-US\"><Request><TransactionReference><CustomerContext>Rating and Service</CustomerContext><XpciVersion>1.0001</XpciVersion></TransactionReference>";
  560. $sXML .= "<RequestAction>Rate</RequestAction><RequestOption>shop</RequestOption></Request>";
  561. if(@$upspickuptype!="") $sXML .= "<PickupType><Code>" . @$upspickuptype . "</Code></PickupType>";
  562. $sXML .= "<Shipment><Shipper><Address>";
  563. $sXML .= "<PostalCode>" . $origZip . "</PostalCode>";
  564. $sXML .= "<CountryCode>" . $origCountryCode . "</CountryCode>";
  565. $sXML .= "</Address></Shipper><ShipTo><Address>";
  566. $sXML .= "<PostalCode>" . $destZip . "</PostalCode>";
  567. $sXML .= "<CountryCode>" . $shipCountryCode . "</CountryCode>";
  568. if($commercialloc!="Y") $sXML .= "<ResidentialAddress/>";
  569. $sXML .= "</Address></ShipTo>";
  570. //sXML = "<Service><Code>11</Code></Service>";
  571. }elseif($shipType==6){
  572. $sXML = '<?xml version="1.0" ?> ' .
  573. "<eparcel>" .
  574. "<language> en </language>" .
  575. "<ratesAndServicesRequest>" .
  576. "<merchantCPCID> " . $adminCanPostUser . " </merchantCPCID>" .
  577. "<fromPostalCode> " . $origZip . " </fromPostalCode>" .
  578. "<lineItems>";
  579. }
  580. }
  581. function addproducttoshipping($apsrs, $prodindex){
  582. global $shipping,$shipType,$packtogether,$shipThisProd,$somethingToShip,$itemsincart,$intShipping,$international,$shipcountry;
  583. global $rowcounter,$origZip,$destZip,$sXML,$numshipoptions,$allzones,$numzones,$dHighWeight,$adminUnits,$shipCountryCode;
  584. global $upspacktype,$splitpackat,$iTotItems,$thePQuantity,$thePWeight,$iWeight,$totalgoods,$shipfreegoods;
  585. if($packtogether) $iTotItems=1; else $iTotItems += 1;
  586. $shipThisProd=TRUE;
  587. if(($apsrs["pExemptions"] & 4)==4){ // No Shipping on this product
  588. if(! $packtogether) $iTotItems -= (int)$apsrs["cartQuantity"];
  589. $shipThisProd=FALSE;
  590. }
  591. if($shipType==1){ // Flat rate shipping
  592. if($shipThisProd) $shipping += $apsrs["pShipping"] + $apsrs["pShipping2"] * ($apsrs["cartQuantity"]-1);
  593. }elseif(($shipType==2 || $shipType==5) && @$_POST["shipping"]==""){ // Weight / Price based shipping
  594. $havematch=FALSE;
  595. for($index3=0; $index3 < $numshipoptions; $index3++)
  596. $dHighest[$index3]=0;
  597. if(is_array($allzones)){
  598. if($shipThisProd){
  599. $somethingToShip=TRUE;
  600. if($shipType==2) $tmpweight = (double)$apsrs["pWeight"]; else $tmpweight = (double)$apsrs["cartProdPrice"];
  601. if($packtogether){
  602. $thePWeight += ((double)($apsrs["cartQuantity"])*$tmpweight);
  603. $thePQuantity = 1;
  604. }else{
  605. $thePWeight = $tmpweight;
  606. $thePQuantity = (double)$apsrs["cartQuantity"];
  607. }
  608. }
  609. if(((!$packtogether && $shipThisProd) || ($packtogether && ($prodindex == $itemsincart))) && $somethingToShip){ // Only calculate pack together when we have the total
  610. for($index2=0; $index2 < $numzones; $index2++){
  611. if($allzones[$index2][0] >= $thePWeight){
  612. $havematch=TRUE;
  613. for($index3=0; $index3 < $numshipoptions; $index3++){
  614. $intShipping[$index3][2] += ((double)$allzones[$index2][1+$index3]*$thePQuantity);
  615. if((double)$allzones[$index2][1+$index3]==-99999.0) $intShipping[$index3][3]=FALSE;
  616. }
  617. break;
  618. }
  619. $dHighWeight = $allzones[$index2][0];
  620. for($index3=0; $index3 < $numshipoptions; $index3++)
  621. $dHighest[$index3]=$allzones[$index2][1+$index3];
  622. }
  623. if(! $havematch){
  624. for($index3=0; $index3 < $numshipoptions; $index3++){
  625. $intShipping[$index3][2] += $dHighest[$index3];
  626. if($dHighest[$index3]==-99999.0) $intShipping[$index3][3]=FALSE;
  627. }
  628. if($allzones[0][0] < 0){
  629. $dHighWeight = $thePWeight - $dHighWeight;
  630. while($dHighWeight > 0){
  631. for($index3=0; $index3 < $numshipoptions; $index3++)
  632. $intShipping[$index3][2] += ((double)($allzones[0][1+$index3])*$thePQuantity);
  633. $dHighWeight += $allzones[0][0];
  634. }
  635. }
  636. }
  637. for($index3=$numshipoptions-1; $index3 >=0; $index3--){
  638. if($intShipping[$index3][3]==FALSE){
  639. for($index4=$index3+1; $index4<=$numshipoptions; $index4++)
  640. $intShipping[$index4-1]=$intShipping[$index4];
  641. $numshipoptions--;
  642. }
  643. }
  644. }
  645. }
  646. }elseif($shipType==3 && @$_POST["shipping"]==""){ // USPS Shipping
  647. if($packtogether){
  648. if($shipThisProd){
  649. $somethingToShip=TRUE;
  650. $iWeight += ((double)$apsrs["pWeight"] * (int)$apsrs["cartQuantity"]);
  651. }
  652. if(($prodindex == $itemsincart) && $somethingToShip){
  653. $numpacks=1;
  654. if(@$splitpackat != "")
  655. if($iWeight > $splitpackat) $numpacks=ceil($iWeight/$splitpackat);
  656. if($numpacks > 1){
  657. if($international != "")
  658. $sXML .= addInternational($rowcounter,$splitpackat,$numpacks-1,"Package",$shipcountry);
  659. else
  660. $sXML .= addDomestic($rowcounter,"Parcel",$origZip,$destZip,$splitpackat,$numpacks-1,"None","REGULAR","True");
  661. $iTotItems++;
  662. $iWeight -= ($splitpackat*($numpacks-1));
  663. $rowcounter++;
  664. }
  665. if($international != "")
  666. $sXML .= addInternational($rowcounter,$iWeight,1,"Package",$shipcountry);
  667. else
  668. $sXML .= addDomestic($rowcounter,"Parcel",$origZip,$destZip,$iWeight,1,"None","REGULAR","True");
  669. $rowcounter++;
  670. }
  671. }else{
  672. if($shipThisProd){
  673. $somethingToShip=TRUE;
  674. $iWeight=$apsrs["pWeight"];
  675. $numpacks=1;
  676. if(@$splitpackat != "")
  677. if($iWeight > $splitpackat) $numpacks=ceil($iWeight/$splitpackat);
  678. if($numpacks > 1){
  679. if($international != "")
  680. $sXML .= addInternational($rowcounter,$splitpackat,$apsrs["cartQuantity"]*($numpacks-1),"Package",$shipcountry);
  681. else
  682. $sXML .= addDomestic($rowcounter,"Parcel",$origZip,$destZip,$splitpackat,$apsrs["cartQuantity"]*($numpacks-1),"None","REGULAR","True");
  683. $iTotItems++;
  684. $iWeight -= ($splitpackat*($numpacks-1));
  685. $rowcounter++;
  686. }
  687. if($international != "")
  688. $sXML .= addInternational($rowcounter,$iWeight,$apsrs["cartQuantity"],"Package",$shipcountry);
  689. else
  690. $sXML .= addDomestic($rowcounter,"Parcel",$origZip,$destZip,$iWeight,$apsrs["cartQuantity"],"None","REGULAR","True");
  691. $rowcounter++;
  692. }
  693. }
  694. }elseif(($shipType==4 || $shipType==6) && @$_POST["shipping"]==""){ // UPS Shipping
  695. if(@$upspacktype=="") $upspacktype="02";
  696. if($packtogether){
  697. if($shipThisProd){
  698. $somethingToShip=TRUE;
  699. $iWeight += ((double)$apsrs["pWeight"] * (int)$apsrs["cartQuantity"]);
  700. }
  701. if(($prodindex == $itemsincart) && $somethingToShip){
  702. $numpacks=1;
  703. if(@$splitpackat != "")
  704. if($iWeight > $splitpackat)
  705. $numpacks=ceil($iWeight/$splitpackat);
  706. for($index3=0;$index3 < $numpacks; $index3++)
  707. if($shipType==4)
  708. $sXML .= addUPSInternational($iWeight / $numpacks,$adminUnits,$upspacktype,$shipCountryCode,$totalgoods-$shipfreegoods);
  709. else
  710. $sXML .= addCanadaPostPackage($iWeight / $numpacks,$adminUnits,$upspacktype,$shipCountryCode,$totalgoods-$shipfreegoods, "");
  711. }
  712. }else{
  713. if($shipThisProd){
  714. $somethingToShip=TRUE;
  715. $iWeight=$apsrs["pWeight"];
  716. $numpacks=1;
  717. if(@$splitpackat != "")
  718. if($iWeight > $splitpackat)
  719. $numpacks=ceil($iWeight/$splitpackat);
  720. for($index2=0;$index2 < (int)$apsrs["cartQuantity"]; $index2++)
  721. for($index3=0;$index3 < $numpacks; $index3++)
  722. if($shipType==4)
  723. $sXML .= addUPSInternational($iWeight / $numpacks,$adminUnits,$upspacktype,$shipCountryCode,$apsrs["cartProdPrice"]);
  724. else
  725. $sXML .= addCanadaPostPackage($iWeight / $numpacks,$adminUnits,$upspacktype,$shipCountryCode,$apsrs["cartProdPrice"],$apsrs["pDims"]);
  726. }
  727. }
  728. }
  729. }
  730. function calculateshipping(){
  731. global $shipType,$isstandardship,$checkIntOptions,$somethingToShip,$willpickuptext,$willpickupcost,$allzones,$numshipoptions,$upsUser,$upsPw,$shipCountryCode,$destZip;
  732. global $shipping,$shipMethod,$success,$errormsg,$xxNoMeth,$sXML,$intShipping,$pzFSA,$international,$iTotItems,$uspsmethods,$numuspsmeths,$shipstate,$maxshipoptions;
  733. if($shipType==1){
  734. $isstandardship = TRUE;
  735. }elseif(($shipType==2 || $shipType==5) && ($somethingToShip || @$willpickuptext != "")){
  736. $checkIntOptions = (@$_POST["shipping"]=="");
  737. if(is_array($allzones) && $numshipoptions>0){
  738. $shipping = $intShipping[0][2];
  739. $shipMethod = $intShipping[0][0];
  740. $isstandardship = (($pzFSA & 1) == 1);
  741. if($numshipoptions == 1 && @$willpickuptext=="")
  742. $checkIntOptions = FALSE;
  743. }else{
  744. if(@$willpickuptext != ""){
  745. if(@$willpickupcost != "") $shipping = $willpickupcost;
  746. $shipMethod = $willpickuptext;
  747. }else{
  748. $success = FALSE;
  749. $errormsg=$xxNoMeth;
  750. $checkIntOptions = FALSE;
  751. }
  752. }
  753. }elseif($shipType==3 && $somethingToShip){
  754. $checkIntOptions = (@$_POST["shipping"]=="");
  755. if(@$_POST["shipping"]==""){
  756. $sXML .= "</" . $international . "RateRequest>";
  757. $success = USPSCalculate($sXML,$international,$shipping, $errormsg, $intShipping);
  758. if(substr($errormsg, 0, 30)=="Warning - Bound Printed Matter") $success=true;
  759. if($success && $checkIntOptions){ // Look for a single valid shipping option
  760. $totShipOptions = 0;
  761. for($indexmso=0; $indexmso<$maxshipoptions; $indexmso++){
  762. $shipRow = $intShipping[$indexmso];
  763. if($iTotItems==$shipRow[3]){
  764. for($index2=0;$index2<$numuspsmeths;$index2++){
  765. if(trim($shipRow[0]) == trim($uspsmethods[$index2][0])){
  766. if($totShipOptions==0){
  767. $shipping = $shipRow[2];
  768. $shipMethod = trim($uspsmethods[$index2][2]);
  769. $isstandardship = (int)$uspsmethods[$index2][1];
  770. }
  771. $totShipOptions++;
  772. }
  773. }
  774. }
  775. }
  776. if($totShipOptions==1)
  777. $checkIntOptions=FALSE;
  778. elseif($totShipOptions==0 && @$willpickuptext==""){
  779. $checkIntOptions=FALSE;
  780. $success=FALSE;
  781. $errormsg=$xxNoMeth;
  782. }
  783. if(@$willpickuptext != "") $checkIntOptions = TRUE;
  784. }
  785. elseif(! $success)
  786. $errormsg = "USPS error: " . $errormsg;
  787. }
  788. }elseif($shipType==4 && $somethingToShip){
  789. $checkIntOptions = (@$_POST["shipping"]=="");
  790. if(@$_POST["shipping"]==""){
  791. $sXML .= "<ShipmentServiceOptions/></Shipment></RatingServiceSelectionRequest>";
  792. if(trim($upsUser) != "" && trim($upsPw) != "")
  793. $success = UPSCalculate($sXML,$international,$shipping, $errormsg, $intShipping);
  794. else{
  795. $success = FALSE;
  796. $errormsg = "You must register with UPS by logging on to your online admin section and clicking the &quot;Register with UPS&quot; link before you can use the UPS OnLine&reg; Shipping Rates and Services Selection";
  797. }
  798. if($success){
  799. $totShipOptions = 0;
  800. for($indexmso=0; $indexmso<$maxshipoptions; $indexmso++){
  801. $shipRow = $intShipping[$indexmso];
  802. if($shipRow[3]==TRUE)
  803. $totShipOptions++;
  804. }
  805. $shipping = $intShipping[0][2];
  806. $shipMethod = $intShipping[0][0];
  807. $isstandardship = $intShipping[0][4];
  808. if($totShipOptions==1)
  809. $checkIntOptions=FALSE;
  810. elseif($totShipOptions == 0 && @$willpickuptext==""){
  811. $checkIntOptions = FALSE;
  812. $success=FALSE;
  813. $errormsg=$xxNoMeth;
  814. }
  815. if(@$willpickuptext != "") $checkIntOptions = TRUE;
  816. }
  817. }
  818. }elseif($shipType==6 && $somethingToShip){
  819. $checkIntOptions = (@$_POST["shipping"]=="");
  820. if(@$_POST["shipping"]==""){
  821. $sXML .= " </lineItems><city> </city> ";
  822. if($shipstate!="")
  823. $sXML .= "<provOrState> " . $shipstate . " </provOrState>";
  824. else{
  825. if($shipCountryCode=="US" || $shipCountryCode=="CA"){
  826. if(trim(@$_POST["sname"]) != "" || trim(@$_POST["saddress"]) != "")
  827. $sXML .= "<provOrState> " . @$_POST["sstate2"] . " </provOrState>";
  828. else
  829. $sXML .= "<provOrState> " . @$_POST["state2"] . " </provOrState>";
  830. }else
  831. $sXML .= "<provOrState> </provOrState>";
  832. }
  833. $sXML .= "<country>" . $shipCountryCode . "</country><postalCode>" . $destZip . "</postalCode></ratesAndServicesRequest></eparcel>";
  834. $success = CanadaPostCalculate($sXML,$international,$shipping, $errormsg, $intShipping);
  835. if($success){
  836. $totShipOptions = 0;
  837. for($indexmso=0; $indexmso<$maxshipoptions; $indexmso++){
  838. $shipRow = $intShipping[$indexmso];
  839. if($shipRow[3]==TRUE)
  840. $totShipOptions++;
  841. }
  842. $shipping = $intShipping[0][2];
  843. $shipMethod = $intShipping[0][0];
  844. $isstandardship = $intShipping[0][4];
  845. if($totShipOptions==1)
  846. $checkIntOptions=FALSE;
  847. elseif($totShipOptions == 0 && @$willpickuptext==""){
  848. $checkIntOptions = FALSE;
  849. $success=FALSE;
  850. $errormsg=$xxNoMeth;
  851. }
  852. if(@$willpickuptext != "") $checkIntOptions = TRUE;
  853. }
  854. }
  855. }
  856. return($success);
  857. }
  858. if($stockManage != 0){
  859. $sSQL = "SELECT cartOrderID,cartID FROM cart WHERE (cartCustID=0 AND cartCompleted=0 AND cartOrderID=0 AND cartDateAdded<'" . date("Y-m-d H:i:s", time()+(($dateadjust-$stockManage)*60*60)) . "')";
  860. if($delAfter != 0)
  861. $sSQL .= " OR (cartCompleted=0 AND cartDateAdded<'" . date("Y-m-d H:i:s", time()-($delAfter*60*60*24)) . "')";
  862. $result = mysql_query($sSQL) or print(mysql_error());
  863. if(mysql_num_rows($result)>0){
  864. $addcomma = "";
  865. $delstr="";
  866. $delcart="";
  867. while($rs = mysql_fetch_assoc($result)){
  868. $delcart .= $addcomma . $rs["cartOrderID"];
  869. $delstr .= $addcomma . $rs["cartID"];
  870. $addcomma = ",";
  871. }
  872. mysql_free_result($result);
  873. }
  874. //Added June 2 2006 by Blake
  875. //deletes wishlist older than $days_img_on_server_cust variable
  876. } else {
  877. $addcomma = "";
  878. $delstr="";
  879. $delcart="";
  880. }
  881. $sSQL_cust = "SELECT cartOrderID,cartID FROM cart WHERE cartCustID>0 AND (cartCompleted=0 AND cartOrderID=0 AND cartDateAdded<'" . date("Y-m-d H:i:s",time()-(60*60*24*$days_delete_cust)) . "')";
  882. $result_cust = mysql_query($sSQL_cust) or print(mysql_error());
  883. if(mysql_num_rows($result_cust)>0){
  884. while($rs_cust = mysql_fetch_assoc($result_cust)){
  885. $delcart .= $addcomma . $rs_cust["cartOrderID"];
  886. $delstr .= $addcomma . $rs_cust["cartID"];
  887. $addcomma = ",";
  888. }
  889. mysql_free_result($result_cust);
  890. }
  891. if(!empty($delstr)){
  892. mysql_query("DELETE FROM cart WHERE cartID IN (" . $delstr . ")") or print(mysql_error());
  893. mysql_query("DELETE FROM cartoptions WHERE coCartID IN (" . $delstr . ")") or print(mysql_error());
  894. }
  895. if(!empty($delcart))
  896. if($delAfter != 0) mysql_query("DELETE FROM orders WHERE ordID IN (" . $delcart . ")") or print(mysql_error());
  897. //end Added June 2 2006 by Blake
  898. if(@$_GET["token"] != ''){
  899. $sSQL = "SELECT payProvDemo,payProvData1,payProvData2,payProvMethod FROM payprovider WHERE payProvEnabled=1 AND payProvID=18"; // Check for PayPal Payment Pro
  900. $result = mysql_query($sSQL) or print(mysql_error());
  901. if($rs = mysql_fetch_assoc($result)){
  902. $demomode = ((int)$rs["payProvDemo"]==1);
  903. $username = trim($rs["payProvData1"]);
  904. $ppmethod = (int)$rs["payProvMethod"];
  905. $data2arr = split("&",trim($rs["payProvData2"]));
  906. $password=urldecode(@$data2arr[0]);
  907. $sslcertpath=urldecode(@$data2arr[1]);
  908. }
  909. mysql_free_result($result);
  910. $sXML = ppsoapheader($username, $password) .
  911. '<soap:Body><GetExpressCheckoutDetailsReq xmlns="urn:ebay:api:PayPalAPI"><GetExpressCheckoutDetailsRequest><Version xmlns="urn:ebay:apis:eBLBaseComponents">1.00</Version>' .
  912. ' <Token>' . $_GET["token"] . '</Token>' .
  913. '</GetExpressCheckoutDetailsRequest></GetExpressCheckoutDetailsReq></soap:Body></soap:Envelope>';
  914. if($demomode) $sandbox = ".sandbox"; else $sandbox = "";
  915. if(callcurlfunction('https://api' . $sandbox . '.paypal.com/2.0/', $sXML, $res, $sslcertpath, $errormsg, FALSE)){
  916. $xmlDoc = new vrXMLDoc($res);
  917. $nodeList = $xmlDoc->nodeList->childNodes[0];
  918. $success=FALSE;
  919. $ordPhone = $ordEmail = $ordName='';
  920. $countryid=0;
  921. $ordShipName = '';
  922. $ordShipAddress = $ordShipAddress2 = '';
  923. $ordShipCity = '';
  924. $ordShipState = '';
  925. $ordShipZip = '';
  926. $ordShipCountry = '';
  927. $ordAffiliate = '';
  928. $ordAddInfo = '';
  929. $ordExtra1 = $ordExtra2 = '';
  930. $ordPayProvider = '19';
  931. $commercialloc = '';
  932. $wantinsurance = '';
  933. $ordComLoc = 0;
  934. $gotaddress = FALSE;
  935. $token = $_GET["token"];
  936. if(abs(@$addshippinginsurance)==1) $ordComLoc += 2;
  937. for($i = 0; $i < $nodeList->length; $i++){
  938. if($nodeList->nodeName[$i]=="SOAP-ENV:Body"){
  939. $e = $nodeList->childNodes[$i];
  940. for($j = 0; $j < $e->length; $j++){
  941. if($e->nodeName[$j] == "GetExpressCheckoutDetailsResponse"){
  942. $ee = $e->childNodes[$j];
  943. for($jj = 0; $jj < $ee->length; $jj++){
  944. if($ee->nodeName[$jj] == "Ack"){
  945. if($ee->nodeValue[$jj]=="Success")
  946. $success=TRUE;
  947. }elseif($ee->nodeName[$jj] == "GetExpressCheckoutDetailsResponseDetails"){
  948. $ff = $ee->childNodes[$jj];
  949. for($kk = 0; $kk < $ff->length; $kk++){
  950. if($ff->nodeName[$kk] == "PayerInfo"){
  951. $gg = $ff->childNodes[$kk];
  952. for($ll = 0; $ll < $gg->length; $ll++){
  953. if($gg->nodeName[$ll] == "Payer"){
  954. $ordEmail = $gg->nodeValue[$ll];
  955. }elseif($gg->nodeName[$ll] == "PayerID"){
  956. $payerid = $gg->nodeValue[$ll];
  957. }elseif($gg->nodeName[$ll] == "PayerName"){
  958. $hh = $gg->childNodes[$ll];
  959. for($mm = 0; $mm < $hh->length; $mm++){
  960. if($hh->nodeName[$mm] == "FirstName"){
  961. $ordName = $hh->nodeValue[$mm] . ($ordName!=''?' '.$ordName:$ordName);
  962. }elseif($hh->nodeName[$mm] == "LastName"){
  963. $ordName = ($ordName!=''?$ordName.' ':$ordName) . $hh->nodeValue[$mm];
  964. }
  965. }
  966. }elseif($gg->nodeName[$ll] == "Address"){
  967. $hh = $gg->childNodes[$ll];
  968. for($mm = 0; $mm < $hh->length; $mm++){
  969. if($hh->nodeName[$mm] == "Street1"){
  970. $ordAddress = $hh->nodeValue[$mm];
  971. }elseif($hh->nodeName[$mm] == "Street2"){
  972. $ordAddress2 = $hh->nodeValue[$mm];
  973. }elseif($hh->nodeName[$mm] == "CityName"){
  974. $ordCity = $hh->nodeValue[$mm];
  975. }elseif($hh->nodeName[$mm] == "StateOrProvince"){
  976. $ordState = $hh->nodeValue[$mm];
  977. }elseif($hh->nodeName[$mm] == "Country"){
  978. $sSQL = "SELECT countryName,countryID FROM countries WHERE countryCode='".mysql_real_escape_string($hh->nodeValue[$mm])."'";
  979. $result = mysql_query($sSQL) or print(mysql_error());
  980. if($rs = mysql_fetch_array($result)){
  981. $ordCountry = $rs["countryName"];
  982. $countryid = $rs["countryID"];
  983. }
  984. }elseif($hh->nodeName[$mm] == "PostalCode"){
  985. $ordZip = $hh->nodeValue[$mm];
  986. }elseif($hh->nodeName[$mm] == "AddressStatus"){
  987. $gotaddress = ($hh->nodeValue[$mm] != 'None');
  988. }
  989. }
  990. }
  991. }
  992. }elseif($ff->nodeName[$kk] == "Custom"){
  993. $customarr = split(':', $ff->nodeValue[$kk]);
  994. $thesessionid = $customarr[0];
  995. $ordAffiliate = $customarr[1];
  996. $cpncode = $customarr[2];
  997. }elseif($ff->nodeName[$kk] == "ContactPhone"){
  998. $ordPhone=$ff->nodeValue[$kk];
  999. }
  1000. }
  1001. }elseif($ee->nodeName[$jj] == "Errors"){
  1002. $ff = $ee->childNodes[$jj];
  1003. for($kk = 0; $kk < $ff->length; $kk++){
  1004. if($ff->nodeName[$kk] == "ShortMessage"){
  1005. $errormsg=$ff->nodeValue[$kk].'<br>'.$errormsg;
  1006. }elseif($ff->nodeName[$kk] == "LongMessage"){
  1007. $errormsg.=$ff->nodeValue[$kk];
  1008. }elseif($ff->nodeName[$kk] == "ErrorCode"){
  1009. $errcode=$ff->nodeValue[$kk];
  1010. }
  1011. }
  1012. }
  1013. }
  1014. }
  1015. }
  1016. }
  1017. }
  1018. if(! $gotaddress)
  1019. $ppexpresscancel=TRUE;
  1020. elseif($success){
  1021. $paypalexpress=TRUE;
  1022. if($countryid==1 || $countryid==2){
  1023. $sSQL = "SELECT stateAbbrev FROM states WHERE stateAbbrev='" . mysql_real_escape_string($ordState) . "'";
  1024. $result = mysql_query($sSQL) or print(mysql_error());
  1025. if($rs = mysql_fetch_array($result))
  1026. $ordState=$rs["stateAbbrev"];
  1027. mysql_free_result($result);
  1028. }
  1029. }else{
  1030. print "PayPal Payment Pro error: " . $errormsg;
  1031. }
  1032. }else{
  1033. print "PayPal Payment Pro error: " . $errormsg;
  1034. }
  1035. }elseif(@$_POST["mode"]=="paypalexpress1"){
  1036. $sSQL = "SELECT payProvDemo,payProvData1,payProvData2,payProvMethod FROM payprovider WHERE payProvEnabled=1 AND payProvID=18"; // Check for PayPal Payment Pro
  1037. $result = mysql_query($sSQL) or print(mysql_error());
  1038. if($rs = mysql_fetch_assoc($result)){
  1039. $demomode = ((int)$rs["payProvDemo"]==1);
  1040. $username = trim($rs["payProvData1"]);
  1041. $ppmethod = (int)$rs["payProvMethod"];
  1042. $data2arr = split("&",trim($rs["payProvData2"]));
  1043. $password=urldecode(@$data2arr[0]);
  1044. $sslcertpath=urldecode(@$data2arr[1]);
  1045. }
  1046. if($demomode) $sandbox = ".sandbox"; else $sandbox = "";
  1047. if(@$pathtossl != ""){
  1048. if(substr($pathtossl,-1) != "/") $storeurl = $pathtossl . "/"; else $storeurl = $pathtossl;
  1049. }
  1050. $sXML = ppsoapheader($username, $password) .
  1051. '<soap:Body><SetExpressCheckoutReq xmlns="urn:ebay:api:PayPalAPI"><SetExpressCheckoutRequest><Version xmlns="urn:ebay:apis:eBLBaseComponents">1.00</Version>' .
  1052. ' <SetExpressCheckoutRequestDetails xmlns="urn:ebay:apis:eBLBaseComponents">' .
  1053. ' <OrderTotal currencyID="' . $countryCurrency . '">' . $_POST["estimate"] . '</OrderTotal>' .
  1054. ' <ReturnURL>' . $storeurl . 'cart.php</ReturnURL>' .
  1055. ' <CancelURL>' . $storeurl . 'cart.php</CancelURL>' .
  1056. ' <Custom>' . $thesessionid . ':' . @$_POST["PARTNER"] . ':' . $_POST['cpncode'] . '</Custom>' .
  1057. ' <PaymentAction>' . ($ppmethod==1?'Authorization':'Sale') . '</PaymentAction>' .
  1058. ' </SetExpressCheckoutRequestDetails>' .
  1059. '</SetExpressCheckoutRequest></SetExpressCheckoutReq></soap:Body></soap:Envelope>';
  1060. if(callcurlfunction('https://api' . $sandbox . '.paypal.com/2.0/', $sXML, $res, $sslcertpath, $errormsg, FALSE)){
  1061. $xmlDoc = new vrXMLDoc($res);
  1062. $nodeList = $xmlDoc->nodeList->childNodes[0];
  1063. $success=FALSE;
  1064. $token='';
  1065. for($i = 0; $i < $nodeList->length; $i++){
  1066. if($nodeList->nodeName[$i]=="SOAP-ENV:Body"){
  1067. $e = $nodeList->childNodes[$i];
  1068. for($j = 0; $j < $e->length; $j++){
  1069. if($e->nodeName[$j] == "SetExpressCheckoutResponse"){
  1070. $ee = $e->childNodes[$j];
  1071. for($jj = 0; $jj < $ee->length; $jj++){
  1072. if($ee->nodeName[$jj] == "Ack"){
  1073. if($ee->nodeValue[$jj]=="Success")
  1074. $success=TRUE;
  1075. }elseif($ee->nodeName[$jj] == "Token"){
  1076. $token=$ee->nodeValue[$jj];
  1077. }elseif($ee->nodeName[$jj] == "Errors"){
  1078. $ff = $ee->childNodes[$jj];
  1079. for($kk = 0; $kk < $ff->length; $kk++){
  1080. if($ff->nodeName[$kk] == "ShortMessage"){
  1081. $errormsg=$ff->nodeValue[$kk].'<br>'.$errormsg;
  1082. }elseif($ff->nodeName[$kk] == "LongMessage"){
  1083. $errormsg.=$ff->nodeValue[$kk];
  1084. }elseif($ff->nodeName[$kk] == "ErrorCode"){
  1085. $errcode=$ff->nodeValue[$kk];
  1086. }
  1087. }
  1088. }
  1089. }
  1090. }
  1091. }
  1092. }
  1093. }
  1094. if($success){
  1095. if(ob_get_length()===FALSE){
  1096. print '<meta http-equiv="Refresh" content="0; URL=https://www'.$sandbox.'.paypal.com/webscr?cmd=_express-checkout&token=' . $token . '">';
  1097. }else{
  1098. header('Location: https://www'.$sandbox.'.paypal.com/webscr?cmd=_express-checkout&token=' . $token);
  1099. }
  1100. print '<p align="center">' . $xxAutFo . '</p>';
  1101. print '<p align="center">' . $xxForAut . ' <a href="https://www'.$sandbox.'.paypal.com/webscr?cmd=_express-checkout&token=' . $token . '">' . $xxClkHere . '</a></p>';
  1102. }else{
  1103. print "PayPal Payment Pro error: " . $errormsg;
  1104. }
  1105. }else{
  1106. print "PayPal Payment Pro error: " . $errormsg;
  1107. }
  1108. }elseif(@$_POST["mode"]=="update"){
  1109. //checkRelatedDiscounts();
  1110. if(@$estimateshipping==TRUE) $_SESSION["xsshipping"] = "";
  1111. if(@isset($_SESSION["discounts"])) $_SESSION["discounts"] = "";
  1112. mysql_query("UPDATE orders SET ordTotal=0,ordShipping=0,ordStateTax=0,ordCountryTax=0,ordHSTTax=0,ordHandling=0,ordDiscount=0,ordDiscountText='' WHERE ordSessionID='" . session_id() . "' AND ordAuthNumber=''") or print(mysql_error());
  1113. foreach(@$_POST as $objItem => $objValue){
  1114. if(substr($objItem,0,5)=="quant"){
  1115. $thecartid = (int)substr($objItem, 5);
  1116. if((int)$objValue==0){
  1117. $sSQL="DELETE FROM cartoptions WHERE coCartID='" . $thecartid . "'";
  1118. mysql_query($sSQL) or print(mysql_error());
  1119. $sSQL="DELETE FROM cart WHERE cartID='" . $thecartid . "'";
  1120. mysql_query($sSQL) or print(mysql_error());
  1121. }else{
  1122. $totQuant = 0;
  1123. $pPrice = 0;
  1124. $pID = "";
  1125. $sSQL="SELECT cartQuantity,cartAddProd,cartProdPrice,cartAltPrice,pInStock,pID,pSell,".$WSP."pPrice,pPricing_group FROM cart LEFT JOIN products ON cart.cartProdId=products.pID WHERE cartID='" . $thecartid . "'";
  1126. $result = mysql_query($sSQL) or print(mysql_error());
  1127. if($rs = mysql_fetch_array($result)){
  1128. $pID = trim($rs["pID"]);
  1129. $pInStock = (int)$rs["pInStock"];
  1130. $pSell = (int)$rs["pSell"];
  1131. //wholesale prices Added by Blake 6-6-06
  1132. $pPrice_adj=1;
  1133. if(@$_SESSION["clientUser"] != ""){
  1134. if(($_SESSION["clientActions"] & 8) == 8){
  1135. $pPrice_adj=getPricingAdj($_SESSION['custID'],1,$rs["pPricing_group"]);
  1136. }
  1137. }
  1138. // Blake 12/20/06
  1139. if($rs["cartAddProd"]=='1') $pPrice = $rs["cartProdPrice"];
  1140. else $pPrice = $rs["pPrice"];
  1141. //
  1142. if($rs["cartAltPrice"]>=0)$pPrice = $rs["cartAltPrice"];
  1143. else $pPrice = $pPrice*$pPrice_adj;
  1144. $cartQuantity = (int)$rs["cartQuantity"];
  1145. mysql_free_result($result);
  1146. $sSQL = "SELECT SUM(cartQuantity) AS cartQuant FROM cart WHERE cartCompleted=0 AND cartCustID=0 AND cartProdID='" . $pID . "'";
  1147. $result = mysql_query($sSQL) or print(mysql_error());
  1148. if($rs = mysql_fetch_array($result))
  1149. $totQuant = (int)$rs["cartQuant"];
  1150. }
  1151. mysql_free_result($result);
  1152. if($pID != ''){
  1153. if($stockManage != 0){
  1154. $quantavailable = abs((int)$objValue);
  1155. if(($pSell & 2) == 2){
  1156. $hasalloptions=true;
  1157. $sSQL = "SELECT coID,optStock,cartQuantity,coOptID,optExtend_shipping,optMin FROM cart INNER JOIN cartoptions ON cart.cartID=cartoptions.coCartID INNER JOIN options ON cartoptions.coOptID=options.optID INNER JOIN optiongroup ON options.optGroup=optiongroup.optGrpID WHERE (optType=2 OR optType=-2";
  1158. // ADDED by Chad - Fix to allow quantity change for custom screenz
  1159. if(eregi("^[a-z]{1,3}-Custom$",$pID)) {
  1160. $sSQL .= " OR optType=3";
  1161. }
  1162. // ADD ENDED
  1163. $sSQL .= ") AND cartID='" . $thecartid . "'";
  1164. $result = mysql_query($sSQL) or print(mysql_error());
  1165. if(mysql_num_rows($result)>0){
  1166. while($rs = mysql_fetch_assoc($result)){
  1167. $pInStock = (int)$rs["optStock"]+1000;
  1168. $actualpInStock = (int)$rs["optStock"];
  1169. $extend_shipping = $rs["optExtend_shipping"];//extends shipping time, displayed in the cart
  1170. $min = $rs["optMin"];//sets how many in stock above zero the extend_shipping is displayed in the cart
  1171. $coID = $rs["coID"];
  1172. $totQuant = 0;
  1173. $cartQuantity = (int)$rs["cartQuantity"];
  1174. $sSQL = "SELECT SUM(cartQuantity) AS cartQuant FROM cart INNER JOIN cartoptions ON cart.cartID=cartoptions.coCartID WHERE cartCompleted=0 AND cartCustID=0 AND coOptID=" . $rs["coOptID"];
  1175. $result2 = mysql_query($sSQL) or print(mysql_error());
  1176. if($rs2 = mysql_fetch_assoc($result2))
  1177. if(! is_null($rs2["cartQuant"])) $totQuant = (int)$rs2["cartQuant"];
  1178. mysql_free_result($result2);
  1179. if((int)($pInStock - $totQuant + $cartQuantity) < $quantavailable) $quantavailable = ($pInStock - $totQuant + $cartQuantity);
  1180. if(($pInStock - $totQuant + $cartQuantity - abs((int)$objValue)) < 0) $hasalloptions=false;
  1181. $extend='';
  1182. //echo '<div style"position:absolute; z-index:100;>actual='.$actualpInStock.' total qty='.$totQuant. ' cart qty='.$cartQuantity.' min='. $min. ' new qty='.abs((int)$objValue).'</div>';
  1183. if(($actualpInStock - $totQuant + $cartQuantity - $min - abs((int)$objValue)) < 0) {
  1184. $extend = $extend_shipping;
  1185. }
  1186. $sql_co="UPDATE cartoptions SET coExtendShipping='$extend' WHERE coID=".$coID;
  1187. mysql_query($sql_co);
  1188. }
  1189. $sSQL="UPDATE cart SET cartQuantity=" . $quantavailable . " WHERE cartID='" . $thecartid . "'";
  1190. //echo $sSQL; exit();
  1191. mysql_query($sSQL) or print(mysql_error());
  1192. if(! $hasalloptions) $isInStock = false;
  1193. }
  1194. mysql_free_result($result);
  1195. }else{
  1196. if(($pInStock - $totQuant + $cartQuantity - $quantavailable) < 0){
  1197. $quantavailable = ($pInStock - $totQuant + $cartQuantity);
  1198. if($quantavailable < 0) $quantavailable=0;
  1199. $isInStock = FALSE;
  1200. }
  1201. $sSQL="UPDATE cart SET cartQuantity=" . $quantavailable . " WHERE cartID='" . $thecartid . "'";
  1202. //echo $sSQL; exit();
  1203. mysql_query($sSQL) or print(mysql_error());
  1204. }
  1205. }else{
  1206. $sSQL="UPDATE cart SET cartQuantity=" . abs((int)$objValue) . " WHERE cartID='" . $thecartid . "'";
  1207. //echo $sSQL; exit();
  1208. mysql_query($sSQL) or print(mysql_error());
  1209. }
  1210. //echo '<div>'.$pID.'='.$pPrice.'</div>';
  1211. checkpricebreaks($pID,$pPrice);
  1212. //checkRelatedDiscounts();
  1213. }
  1214. }
  1215. }elseif(substr($objItem,0,5)=="delet"){
  1216. $sSQL="DELETE FROM cart WHERE cartID='" . (int)substr($objItem, 5) . "'";
  1217. mysql_query($sSQL) or print(mysql_error());
  1218. $sSQL="DELETE FROM cartoptions WHERE coCartID='" . (int)substr($objItem, 5) . "'";
  1219. mysql_query($sSQL) or print(mysql_error());
  1220. checkpricebreaks($pID,$pPrice);
  1221. //checkRelatedDiscounts();
  1222. }
  1223. }
  1224. }
  1225. if(@$_POST["mode"]=="add"){
  1226. if(@$estimateshipping==TRUE) $_SESSION["xsshipping"] = "";
  1227. if(@isset($_SESSION["discounts"])) $_SESSION["discounts"] = "";
  1228. mysql_query("UPDATE orders SET ordTotal=0,ordShipping=0,ordStateTax=0,ordCountryTax=0,ordHSTTax=0,ordHandling=0,ordDiscount=0,ordDiscountText='' WHERE ordSessionID='" . session_id() . "' AND ordAuthNumber=''") or print(mysql_error());
  1229. $bExists = FALSE;
  1230. if(trim(@$_POST["frompage"])!="") $_SESSION["frompage"]=$_POST["frompage"]; else $_SESSION["frompage"]="";
  1231. if(@$_POST["quant"]=="" || ! is_numeric(@$_POST["quant"]))
  1232. $quantity=1;
  1233. else
  1234. $quantity=abs((int)@$_POST["quant"]);
  1235. foreach(@$_POST as $objItem => $objValue){ // Check if the product id is modified
  1236. if(substr($objItem,0,4)=="optn"){
  1237. $sSQL="SELECT optRegExp FROM options WHERE optID='" . mysql_real_escape_string($objValue) . "'";
  1238. $result2 = mysql_query($sSQL) or print(mysql_error());
  1239. $rs=mysql_fetch_assoc($result2);
  1240. $theexp = trim($rs["optRegExp"]);
  1241. if($theexp != "" && substr($theexp, 0, 1) != "!"){
  1242. $theexp = str_replace('%s', $theid, $theexp);
  1243. if(strpos($theexp, " ") !== FALSE){ // Search and replace
  1244. $exparr = split(" ", $theexp, 2);
  1245. $theid = str_replace($exparr[0], $exparr[1], $theid);
  1246. }else
  1247. $theid = $theexp;
  1248. }
  1249. mysql_free_result($result2);
  1250. }
  1251. if(! $bExists) break;
  1252. }
  1253. $sSQL = "SELECT cartID FROM cart WHERE cartCompleted=0 AND cartSessionID='" . session_id() . "' AND cartProdID='" . $theid . "'";
  1254. $result = mysql_query($sSQL) or print(mysql_error());
  1255. while($rs = mysql_fetch_assoc($result)){
  1256. $bExists = TRUE;
  1257. $cartID = $rs["cartID"];
  1258. foreach(@$_POST as $objItem => $objValue){ // We have the product. Check we have all the same options
  1259. if(substr($objItem,0,4)=="optn"){
  1260. if(@$_POST["v" . $objItem] != ""){
  1261. $sSQL="SELECT coID FROM cartoptions WHERE coCartID=" . $cartID . " AND coOptID='" . mysql_real_escape_string($objValue) . "' AND coCartOption='" . mysql_real_escape_string(unstripslashes(trim(@$_POST["v" . $objItem]))) . "'";
  1262. $result2 = mysql_query($sSQL) or print(mysql_error());
  1263. if(mysql_num_rows($result2)==0) $bExists=FALSE;
  1264. mysql_free_result($result2);
  1265. }else{
  1266. $sSQL="SELECT coID FROM cartoptions WHERE coCartID=" . $cartID . " AND coOptID='" . mysql_real_escape_string($objValue) . "'";
  1267. $result2 = mysql_query($sSQL) or print(mysql_error());
  1268. if(mysql_num_rows($result2)==0) $bExists=FALSE;
  1269. mysql_free_result($result2);
  1270. }
  1271. }
  1272. if(! $bExists) break;
  1273. }
  1274. if($bExists) break;
  1275. }
  1276. mysql_free_result($result);
  1277. $sSQL = "SELECT ".getlangid("pName",1).",".$WSP."pPrice,pInStock,pWeight,pSell,pPricing_group FROM products WHERE pID='" . $theid . "'";
  1278. $result = mysql_query($sSQL) or print(mysql_error());
  1279. if(! ($rsStock = mysql_fetch_array($result))){
  1280. $rsStock[getlangid("pName",1)]=$theid;
  1281. $stockManage=0;
  1282. $isInStock=FALSE;
  1283. $outofstockreason=2;
  1284. }
  1285. mysql_free_result($result);
  1286. if($stockManage != 0){
  1287. if(($rsStock["pSell"] & 2)==2){
  1288. $isInStock = true;
  1289. foreach(@$_POST as $objItem => $objValue){
  1290. if(substr($objItem,0,4)=="optn"){
  1291. $sSQL="SELECT optStock FROM options INNER JOIN optiongroup ON options.optGroup=optiongroup.optGrpID WHERE (optType=2 OR optType=-2) AND optID='" . mysql_real_escape_string($objValue) . "'";
  1292. $result = mysql_query($sSQL) or print(mysql_error());
  1293. if($rs = mysql_fetch_array($result))
  1294. $isInStock = ($isInStock && ($rs["optStock"]+1000 >= $quantity));
  1295. mysql_free_result($result);
  1296. }
  1297. }
  1298. if($isInStock){ // Check cart
  1299. $bestDate = time()+(60*60*24*62);
  1300. foreach(@$_POST as $objItem => $objValue){
  1301. $totQuant = 0;
  1302. $stockQuant = 0;
  1303. if(substr($objItem,0,4)=="optn"){
  1304. $sSQL = "SELECT cartQuantity,cartDateAdded,cartOrderID,optStock,optExtend_shipping,optMin,coID FROM cart INNER JOIN cartoptions ON cart.cartID=cartoptions.coCartID INNER JOIN options ON cartoptions.coOptID=options.optID INNER JOIN optiongroup ON options.optGroup=optiongroup.optGrpID WHERE (optType=2 OR optType=-2) AND cartCompleted=0 AND cartCustID=0 AND coOptID='" . mysql_real_escape_string($objValue) . "'";
  1305. $result = mysql_query($sSQL) or print(mysql_error());
  1306. $extend_shipping_out='';
  1307. if(mysql_num_rows($result)>0){
  1308. $rs = mysql_fetch_array($result);
  1309. $stockQuant = $rs["optStock"]+1000;//adds 1000 to make it never out of stock
  1310. do{
  1311. $totQuant += $rs["cartQuantity"];
  1312. if((int)$rs["cartOrderID"]==0 && strtotime($rs["cartDateAdded"]) < $bestDate) $bestDate = strtotime($rs["cartDateAdded"]);
  1313. }while($rs = mysql_fetch_array($result));
  1314. if(($totQuant+$quantity) > $stockQuant){
  1315. $isInStock=false;
  1316. $outofstockreason=1;
  1317. }
  1318. }
  1319. mysql_free_result($result);
  1320. }
  1321. }
  1322. }
  1323. }else{
  1324. if($isInStock = (($rsStock["pInStock"]-$quantity) >= 0)){ // Check cart
  1325. $totQuant = 0;
  1326. $bestDate = time()+(60*60*24*62);
  1327. $sSQL = "SELECT cartQuantity,cartDateAdded,cartOrderID FROM cart WHERE cartCompleted=0 AND cartCustID=0 AND cartProdID='" . $theid . "'";
  1328. $result = mysql_query($sSQL) or print(mysql_error());
  1329. while($rs = mysql_fetch_array($result)){
  1330. $totQuant += $rs["cartQuantity"];
  1331. if((int)$rs["cartOrderID"]==0 && strtotime($rs["cartDateAdded"]) < $bestDate) $bestDate = strtotime($rs["cartDateAdded"]);
  1332. }
  1333. mysql_free_result($result);
  1334. if(($rsStock["pInStock"]-($totQuant+$quantity)) < 0){
  1335. $isInStock = FALSE;
  1336. $outofstockreason=1;
  1337. }
  1338. }
  1339. }
  1340. }
  1341. //check to see if quanity is less than min level added by Blake April 3, 2006
  1342. $extend_shipping_out='';
  1343. foreach(@$_POST as $objItem => $objValue){
  1344. if(substr($objItem,0,4)=="optn"){
  1345. if(trim(@$_POST["v" . $objItem])==""){
  1346. $sSQL = "SELECT cartQuantity,cartDateAdded,cartOrderID,optStock,optExtend_shipping,optMin,coID, optName FROM cart INNER JOIN cartoptions ON cart.cartID=cartoptions.coCartID INNER JOIN options ON cartoptions.coOptID=options.optID INNER JOIN optiongroup ON options.optGroup=optiongroup.optGrpID WHERE (optType=2 OR optType=-2) AND cartCompleted=0 AND coOptID='" . mysql_real_escape_string($objValue) . "'";
  1347. //echo $sSQL;
  1348. $result = mysql_query($sSQL) or print(mysql_error());
  1349. if(mysql_num_rows($result)>0){
  1350. $rs = mysql_fetch_array($result);
  1351. $stockQuant = $rs["optStock"]+1000;//adds 100 to make it never out of stock
  1352. $actualstockQuant = $rs["optStock"];//this is the actual stock available
  1353. $extend_shipping = $rs["optExtend_shipping"];//extends shipping time, displayed in the cart
  1354. $min = $rs["optMin"];//sets how many in stock above zero the extend_shipping is displayed in the cart
  1355. $coID = $rs["coID"];
  1356. $optname = $rs["optName"];
  1357. do{
  1358. $totQuant += $rs["cartQuantity"];
  1359. if((int)$rs["cartOrderID"]==0 && strtotime($rs["cartDateAdded"]) < $bestDate) $bestDate = strtotime($rs["cartDateAdded"]);
  1360. }while($rs = mysql_fetch_array($result));
  1361. // blake
  1362. //echo '<!-- total qty='.$totQuant.' new qty='.$quantity.' min='.$min.' ='.$actualstockQuant.' name='.$optname." -->";
  1363. if(($totQuant+$quantity+$min)> $actualstockQuant){
  1364. $sql_co="UPDATE cartoptions SET coExtendShipping='$extend_shipping' WHERE coCartID=".$cartID." AND coOptID=".$objValue;
  1365. $extend_shipping_out[$objValue]=$extend_shipping;
  1366. //echo '<br />Update='.$sql_co;
  1367. mysql_query($sql_co);
  1368. }
  1369. } else {
  1370. $sSQL="SELECT optStock,optExtend_shipping,optMin,optExtend_shipping,optName FROM options INNER JOIN optiongroup ON options.optGroup=optiongroup.optGrpID WHERE (optType=2 OR optType=-2) AND optID='" . mysql_real_escape_string($objValue) . "'";
  1371. $result = mysql_query($sSQL) or print(mysql_error());
  1372. if($rs3 = mysql_fetch_array($result)) {
  1373. if($quantity+$rs3["optMin"] > $rs3["optStock"]) {
  1374. //echo $rs3["optName"].' qty='.$quantity.' min='.$rs3["optMin"].'='.$rs3["optStock"];
  1375. $extend_shipping_out[$objValue]=$rs3["optExtend_shipping"];
  1376. //echo '<br />first option in cart. Shipping='.$extend_shipping_out[$objValue];
  1377. }
  1378. }
  1379. }
  1380. mysql_free_result($result);
  1381. }
  1382. }
  1383. }//echo '<br>hi'.getPricingAdj($_SESSION['custid'],$quantity,$rsStock[pPricing_group]);exit();
  1384. //end added
  1385. if($isInStock){
  1386. //wholesale prices Added by Blake 6-6-06
  1387. $pPrice_adj=1;
  1388. if(@$_SESSION["clientUser"] != ""){
  1389. if(($_SESSION["clientActions"] & 8) == 8){
  1390. $pPrice_adj=getPricingAdj($_SESSION['custID'],1,$rsStock["pPricing_group"]);
  1391. }
  1392. }
  1393. // Add Ended
  1394. if($bExists){
  1395. $sSQL = "UPDATE cart SET cartQuantity=cartQuantity+" . $quantity . " WHERE cartID=" . $cartID;
  1396. mysql_query($sSQL) or print(mysql_error());
  1397. }else{
  1398. $sSQL = "INSERT INTO cart (cartSessionID,cartProdID,cartQuantity,cartCompleted,cartProdName,cartProdPrice,cartOrderID,cartDateAdded) VALUES (";
  1399. $sSQL .= "'" . session_id() . "',";
  1400. $sSQL .= "'" . $theid . "',";
  1401. $sSQL .= $quantity . ",";
  1402. $sSQL .= "0,";
  1403. $sSQL .= "'" . mysql_real_escape_string($rsStock[getlangid("pName",1)]) . "',";
  1404. $sSQL .= "'" . $rsStock["pPrice"]*$pPrice_adj . "',";
  1405. $sSQL .= "0,";
  1406. $sSQL .= "'" . date("Y-m-d H:i:s", time() + ($dateadjust*60*60)) . "')";
  1407. mysql_query($sSQL) or print(mysql_error());
  1408. $cartID = mysql_insert_id();
  1409. foreach(@$_POST as $objItem => $objValue){
  1410. if(substr($objItem,0,4)=="optn"){
  1411. if(trim(@$_POST["v" . $objItem])==""){
  1412. $sSQL="SELECT optID,".getlangid("optGrpName",16).",".getlangid("optName",32)."," . $OWSP . "optPriceDiff,optWeightDiff,optType,optFlags FROM options LEFT JOIN optiongroup ON options.optGroup=optiongroup.optGrpID WHERE optID='" . mysql_real_escape_string($objValue) . "'";
  1413. $result = mysql_query($sSQL) or print(mysql_error());
  1414. if($rs = mysql_fetch_array($result)){
  1415. if(abs($rs["optType"]) != 3){
  1416. $sSQL = "INSERT INTO cartoptions (coCartID,coOptID,coOptGroup,coCartOption,coExtendShipping,coPriceDiff,coWeightDiff) VALUES (" . $cartID . "," . $rs["optID"] . ",'" . mysql_real_escape_string($rs[getlangid("optGrpName",16)]) . "','" . mysql_real_escape_string($rs[getlangid("optName",32)]) ."','" . $extend_shipping_out[$objValue] . "',";
  1417. if(($rs["optFlags"]&1)==0) $sSQL .= $rs["optPriceDiff"] . ","; else $sSQL .= round(($rs["optPriceDiff"] * $rsStock["pPrice"])/100.0, 2) . ",";
  1418. if(($rs["optFlags"]&2)==0) $sSQL .= $rs["optWeightDiff"] . ")"; else $sSQL .= multShipWeight($rsStock["pWeight"],$rs["optWeightDiff"]) . ")";
  1419. //echo $sSQL;
  1420. }else
  1421. $sSQL = "INSERT INTO cartoptions (coCartID,coOptID,coOptGroup,coCartOption,coPriceDiff,coWeightDiff) VALUES (" . $cartID . "," . $rs["optID"] . ",'" . mysql_real_escape_string($rs[getlangid("optGrpName",16)]) . "','',0,0)";
  1422. mysql_query($sSQL) or print(mysql_error());
  1423. }
  1424. mysql_free_result($result);
  1425. }else{
  1426. $sSQL="SELECT optID,".getlangid("optGrpName",16).",".getlangid("optName",32)." FROM options LEFT JOIN optiongroup ON options.optGroup=optiongroup.optGrpID WHERE optID='" . mysql_real_escape_string($objValue) . "'";
  1427. $result = mysql_query($sSQL) or print(mysql_error());
  1428. $rs = mysql_fetch_array($result);
  1429. $sSQL = "INSERT INTO cartoptions (coCartID,coOptID,coOptGroup,coCartOption,coPriceDiff,coWeightDiff) VALUES (" . $cartID . "," . $rs["optID"] . ",'" . mysql_real_escape_string($rs[getlangid("optGrpName",16)]) . "','" . mysql_real_escape_string(unstripslashes(trim(@$_POST["v" . $objItem]))) . "',0,0)";
  1430. mysql_query($sSQL) or print(mysql_error());
  1431. mysql_free_result($result);
  1432. }
  1433. }
  1434. }
  1435. }
  1436. checkpricebreaks($theid,$rsStock["pPrice"]*$pPrice_adj);
  1437. //checkRelatedDiscounts();
  1438. if(trim(@$_POST["frompage"])!="" && @$actionaftercart==3)
  1439. print '<meta http-equiv="Refresh" content="3; URL=' . trim(@$_POST["frompage"]) . '">';
  1440. elseif(@$actionaftercart==4){
  1441. if(ob_get_length()===FALSE) print '<meta http-equiv="Refresh" content="0; URL=cart.php">'; else header('Location: '.$storeurl.'cart.php');
  1442. }else
  1443. print '<meta http-equiv="Refresh" content="3; URL=cart.php">';
  1444. ?>
  1445. <table border="0" cellspacing="<?php print $maintablespacing?>" cellpadding="<?php print $maintablepadding?>" width="<?php print $maintablewidth?>" bgcolor="<?php print $maintablebg?>" align="center">
  1446. <tr>
  1447. <td width="100%" align="center">
  1448. <table width="<?php print $innertablewidth?>" border="0" cellspacing="<?php print $innertablespacing?>" cellpadding="<?php print $innertablepadding?>" bgcolor="<?php print $innertablebg?>">
  1449. <tr>
  1450. <td align="center"><p>&nbsp;</p>
  1451. <?php print '<p style=" font-size:16px;">' . $quantity . ' <strong>' . $rsStock[getlangid("pName",1)] . '</strong> ' . $xxAddOrd . '</p>';
  1452. print '<p>' . $xxPlsWait . ' <a href="';
  1453. if(trim(@$_POST["frompage"])!="" && @$actionaftercart==3) print trim(@$_POST["frompage"]); else print 'cart.php';
  1454. print '"><strong>' . $xxClkHere . '</strong></a>.</p>'; ?>
  1455. <p><a href="/cart.php"><img src="/lib/images/viewcart.gif" alt="Checkout Here" border="0" /></a></p>
  1456. <p>&nbsp;</p>
  1457. </td>
  1458. </tr>
  1459. </table>
  1460. </td>
  1461. </tr>
  1462. </table>
  1463. <?php
  1464. }else{
  1465. ?>
  1466. <table border="0" cellspacing="<?php print $maintablespacing?>" cellpadding="<?php print $maintablepadding?>" width="<?php print $maintablewidth?>" bgcolor="<?php print $maintablebg?>" align="center">
  1467. <tr>
  1468. <td width="100%" align="center">
  1469. <table width="<?php print $innertablewidth?>" border="0" cellspacing="<?php print $innertablespacing?>" cellpadding="<?php print $innertablepadding?>" bgcolor="<?php print $innertablebg?>">
  1470. <tr>
  1471. <td align="center"><p>&nbsp;</p>
  1472. <?php print "<p>" . $xxSrryItm . " <strong>" . $rsStock[getlangid("pName",1)] . "</strong> " . $xxIsCntly;
  1473. if($outofstockreason==1) print " " . $xxTemprly;
  1474. if($outofstockreason==2) print ' not available in our product database.'; else print " " . $xxOutStck . "</p>";
  1475. if($outofstockreason==1){
  1476. print "<p>" . $xxNotChOu . " ";
  1477. $bestDate += $stockManage*(60*60);
  1478. $totMins = (int)($bestDate - (time()+($dateadjust*60*60)));
  1479. $totMins = (int)($totMins / 60)+1;
  1480. if($totMins > 300)
  1481. print $xxShrtWhl;
  1482. else{
  1483. if($totMins >= 60) print (int)($totMins / 60) . " hour";
  1484. if($totMins >= 120) print "s";
  1485. $totMins -= ((int)($totMins / 60) * 60);
  1486. if($totMins > 0) print " " . $totMins . " minute";
  1487. if($totMins > 1) print "s";
  1488. }
  1489. print $xxChkBack . "</p>";
  1490. } ?>
  1491. <p><?php print $xxPlease?> <a href="javascript:history.go(-1)"><strong><?php print $xxClkHere?></strong></a> <?php print $xxToRetrn?></p>
  1492. <p>&nbsp;</p>
  1493. <p>&nbsp;</p>
  1494. </td>
  1495. </tr>
  1496. </table>
  1497. </td>
  1498. </tr>
  1499. </table>
  1500. <?php
  1501. }
  1502. }elseif(@$_POST["mode"]=="checkout" || $ppexpresscancel || @$_POST["mode"]=="edit"){
  1503. $remember=FALSE;
  1504. $havestate=FALSE;
  1505. if(@$_POST["checktmplogin"]=="1"){
  1506. $sSQL = "SELECT tmploginname FROM tmplogin WHERE tmploginid='" . mysql_real_escape_string(trim(@$_POST["sessionid"])) . "'";
  1507. $result = mysql_query($sSQL) or print(mysql_error());
  1508. if($rs = mysql_fetch_array($result)){
  1509. $_SESSION["clientUser"]=$rs["tmploginname"];
  1510. mysql_free_result($result);
  1511. mysql_query("DELETE FROM tmplogin WHERE tmploginid='" . mysql_real_escape_string(trim(@$_POST["sessionid"])) . "'") or print(mysql_error());
  1512. $sSQL = "SELECT clientActions,clientLoginLevel FROM clientlogin WHERE clientUser='" . mysql_real_escape_string($_SESSION["clientUser"]) . "'";
  1513. $result = mysql_query($sSQL) or print(mysql_error());
  1514. if($rs = mysql_fetch_array($result)){
  1515. $_SESSION["clientActions"]=$rs["clientActions"];
  1516. $_SESSION["clientLoginLevel"]=$rs["clientLoginLevel"];
  1517. }
  1518. }
  1519. mysql_free_result($result);
  1520. }
  1521. if(@$_COOKIE["id1"] != "" && @$_COOKIE["id2"] != "" && $_POST['mode']!="edit"){
  1522. $sSQL = "SELECT ordName,ordAddress,ordAddress2,ordCity,ordState,ordZip,ordCountry,ordEmail,ordPhone,ordShipName,ordShipAddress,ordShipAddress2,ordShipCity,ordShipState,ordShipZip,ordShipCountry,ordPayProvider,ordComLoc,ordExtra1,ordExtra2,ordAddInfo,ordPoApo,ordShipPoApo,ordHowFound FROM orders WHERE ordID='" . mysql_real_escape_string(unstripslashes($_COOKIE["id1"])) . "' AND ordSessionID='" . mysql_real_escape_string(unstripslashes($_COOKIE["id2"])) . "'";
  1523. $result = mysql_query($sSQL) or print(mysql_error());
  1524. if($rs = mysql_fetch_array($result)){
  1525. $ordName = $rs["ordName"];
  1526. $ordPoApo = $rs["ordPoApo"];
  1527. $ordHowFound = $rs["ordHowFound"];
  1528. $ordAddress = $rs["ordAddress"];
  1529. $ordAddress2 = $rs["ordAddress2"];
  1530. $ordCity = $rs["ordCity"];
  1531. $ordState = $rs["ordState"];
  1532. $ordZip = $rs["ordZip"];
  1533. $ordCountry = $rs["ordCountry"];
  1534. $ordEmail = $rs["ordEmail"];
  1535. $ordPhone = $rs["ordPhone"];
  1536. //$ordShipName = $rs["ordShipName"];
  1537. //$ordShipPoApo = $rs["ordShipPoApo"];
  1538. //$ordShipAddress = $rs["ordShipAddress"];
  1539. //$ordShipAddress2 = $rs["ordShipAddress2"];
  1540. //$ordShipCity = $rs["ordShipCity"];
  1541. //$ordShipState = $rs["ordShipState"];
  1542. //$ordShipZip = $rs["ordShipZip"];
  1543. //$ordShipCountry = $rs["ordShipCountry"];
  1544. $ordPayProvider = $rs["ordPayProvider"];
  1545. $ordComLoc = $rs["ordComLoc"];
  1546. $ordExtra1 = $rs["ordExtra1"];
  1547. $ordExtra2 = $rs["ordExtra2"];
  1548. //$ordAddInfo = $rs["ordAddInfo"];
  1549. $remember=TRUE;
  1550. }
  1551. mysql_free_result($result);
  1552. } else {
  1553. $ordName = $_POST["name"];
  1554. $ordPoApo = $_POST["poapo"];
  1555. $ordHowFound = $_POST["howfound"];
  1556. $ordAddress = $_POST["address"];
  1557. $ordAddress2 = $_POST["address2"];
  1558. $ordCity = $_POST["city"];
  1559. $ordState = $_POST["state"];
  1560. $ordZip = $_POST["zip"];
  1561. $ordCountry = $_POST["country"];
  1562. $ordEmail = $_POST["email"];
  1563. $ordPhone = $_POST["phone"];
  1564. $ordShipName = $_POST["sname"];
  1565. $ordShipPoApo = $_POST["spoapo"];
  1566. $ordShipAddress = $_POST["saddress"];
  1567. $ordShipAddress2 = $_POST["saddress2"];
  1568. $ordShipCity = $_POST["scity"];
  1569. $ordShipState = $_POST["sstate"];
  1570. $ordShipZip = $_POST["szip"];
  1571. $ordShipCountry = $_POST["scountry"];
  1572. $ordPayProvider = $_POST["payprovider"];
  1573. $ordComLoc = $_POST["commercialloc"];
  1574. $ordExtra1 = $_POST["orderextra1"];
  1575. $ordExtra2 = $_POST["orderextra2"];
  1576. $ordAddInfo = $_POST["ordAddInfo"];
  1577. if($_POST["remember"]==1)$remember=TRUE;
  1578. }
  1579. if(! $remember && $_POST['mode']!="edit"){
  1580. $ordState = @$_SESSION["state"];
  1581. $ordCountry = @$_SESSION["country"];
  1582. $ordZip = @$_SESSION["zip"];
  1583. }
  1584. $sSQL = "SELECT stateAbbrev FROM states WHERE stateEnabled=1 ORDER BY stateAbbrev";
  1585. $result = mysql_query($sSQL) or print(mysql_error());
  1586. $numallstates=0;
  1587. $numallcountries=0;
  1588. while($rs = mysql_fetch_array($result))
  1589. $allstates[$numallstates++]=$rs;
  1590. mysql_free_result($result);
  1591. $numhomecountries = 0;
  1592. $nonhomecountries = 0;
  1593. $sSQL = "SELECT countryName,countryOrder,".getlangid("countryName",8)." FROM countries WHERE countryEnabled=1 ORDER BY countryOrder DESC," . getlangid("countryName",8);
  1594. $result = mysql_query($sSQL) or print(mysql_error());
  1595. while($rs = mysql_fetch_array($result)){
  1596. $allcountries[$numallcountries++]=$rs;
  1597. if($rs["countryOrder"]==2)$numhomecountries++;else $nonhomecountries++;
  1598. }
  1599. mysql_free_result($result);
  1600. ?>
  1601. <?php include(APPPATH.'views/pages/admin/cartinc.php'); ?>
  1602. <script language="JavaScript" type="text/javascript">
  1603. // <![CDATA[
  1604. function showDetails() {
  1605. var aDetails = document.getElementsByClassName("shippingDetails");
  1606. for(i=0; i<aDetails.length; i++) {
  1607. aDetails[i].style.display = "";
  1608. new Effect.Highlight(aDetails[i]);
  1609. }
  1610. $('sname').value = '<?=$ordShipName?>';
  1611. //$('spoapo').value = '<?=$ordShipPoApo?>';
  1612. $('saddress').value = '<?=$ordShipAddress?>';
  1613. $('saddress2').value = '<?=$ordShipAddress2?>';
  1614. $('scity').value = '<?=$ordShipCity?>';
  1615. for(j=0; j<$('sstate').options.length; j++) {
  1616. if($('sstate').options[j].value == '<?=$ordShipState?>') {
  1617. $('sstate').selectedIndex = j;
  1618. }
  1619. }
  1620. for(j=0; j<$('scountry').options.length; j++) {
  1621. if($('scountry').options[j].value == '<?=$ordShipCountry?>') {
  1622. $('scountry').selectedIndex = j;
  1623. }
  1624. }
  1625. $('szip').value = '<?=$ordShipZip?>';
  1626. $("showShipping").style.display = "none";
  1627. }
  1628. // ]]>
  1629. </script>
  1630. <script language="JavaScript" type="text/javascript">
  1631. <!--
  1632. var checkedfullname=false;
  1633. var numhomecountries=0,nonhomecountries=0;
  1634. function checkform(frm)
  1635. {
  1636. <?php if(trim(@$extraorderfield1)!="" && @$extraorderfield1required==TRUE){ ?>
  1637. if(frm.ordextra1.value==""){
  1638. alert("<?php print $xxPlsEntr?> \"<?php print $extraorderfield1?>\".");
  1639. frm.ordextra1.focus();
  1640. return (false);
  1641. }
  1642. <?php } ?>
  1643. if(frm.name.value==""){
  1644. alert("<?php print $xxPlsEntr?> \"<?php print $xxName?>\".");
  1645. frm.name.focus();
  1646. return (false);
  1647. }
  1648. gotspace=false;
  1649. var checkStr = frm.name.value;
  1650. for (i = 0; i < checkStr.length; i++){
  1651. if(checkStr.charAt(i)==" ")
  1652. gotspace=true;
  1653. }
  1654. if(!checkedfullname && !gotspace){
  1655. alert("<?php print $xxFulNam?> \"<?php print $xxName?>\".");
  1656. frm.name.focus();
  1657. checkedfullname=true;
  1658. return (false);
  1659. }
  1660. if(frm.email.value==""){
  1661. alert("<?php print $xxPlsEntr?> \"<?php print $xxEmail?>\".");
  1662. frm.email.focus();
  1663. return (false);
  1664. }
  1665. validemail=0;
  1666. var checkStr = frm.email.value;
  1667. for (i = 0; i < checkStr.length; i++){
  1668. if(checkStr.charAt(i)=="@")
  1669. validemail |= 1;
  1670. if(checkStr.charAt(i)==".")
  1671. validemail |= 2;
  1672. }
  1673. if(validemail != 3){
  1674. alert("<?php print $xxValEm?>");
  1675. frm.email.focus();
  1676. return (false);
  1677. }
  1678. if(frm.address.value==""){
  1679. alert("<?php print $xxPlsEntr?> \"<?php print $xxAddress?>\".");
  1680. frm.address.focus();
  1681. return (false);
  1682. }
  1683. if(frm.city.value==""){
  1684. alert("<?php print $xxPlsEntr?> \"<?php print $xxCity?>\".");
  1685. frm.city.focus();
  1686. return (false);
  1687. }
  1688. if($F('state')=='AA' || $F('state')=='AE' || $F('state')=='AP') {
  1689. if(!$F('poapo')) {
  1690. alert("Please check the PO/APO box.");
  1691. frm.poapo.focus();
  1692. return (false);
  1693. }
  1694. }
  1695. if(frm.country.selectedIndex < numhomecountries){
  1696. <?php if($numallstates>0){ ?>
  1697. if(frm.state.selectedIndex==0){
  1698. alert("<?php print $xxPlsSlct . " " . $xxState?>");
  1699. frm.state.focus();
  1700. return (false);
  1701. }
  1702. <?php } ?>
  1703. }else{
  1704. <?php if($nonhomecountries>0){ ?>
  1705. if(frm.state2.value==""){
  1706. alert("<?php print $xxPlsEntr?> \"<?php print str_replace("<br />"," ",$xxNonState)?>\".");
  1707. frm.state2.focus();
  1708. return (false);
  1709. }
  1710. <?php } ?>}
  1711. if($F('country') != 'United States of America' && $('poapo').checked) {
  1712. $('poapo').checked = false;
  1713. }
  1714. if(frm.zip.value==""){
  1715. alert("<?php print $xxPlsEntr?> \"<?php print $xxZip?>\".");
  1716. frm.zip.focus();
  1717. return (false);
  1718. }
  1719. if(frm.phone.value==""){
  1720. alert("<?php print $xxPlsEntr?> \"<?php print $xxPhone?>\".");
  1721. frm.phone.focus();
  1722. return (false);
  1723. }
  1724. <?php if(trim(@$extraorderfield2)!="" && @$extraorderfield2required==TRUE){ ?>
  1725. if(frm.ordextra2.value==""){
  1726. alert("<?php print $xxPlsEntr?> \"<?php print $extraorderfield2?>\".");
  1727. frm.ordextra2.focus();
  1728. return (false);
  1729. }
  1730. <?php } ?>
  1731. <?php if(@$noshipaddress!=TRUE){ ?>
  1732. if(frm.saddress.value!="" || frm.saddress2.value!=""){ // This means they've entered shipping details
  1733. if(frm.sname.value==""){
  1734. alert("<?php print $xxShpDtls?>\n\n<?php print $xxPlsEntr?> \"<?php print $xxName?>\".");
  1735. frm.sname.focus();
  1736. return (false);
  1737. }
  1738. if(frm.scity.value==""){
  1739. alert("<?php print $xxShpDtls?>\n\n<?php print $xxPlsEntr?> \"<?php print $xxCity?>\".");
  1740. frm.scity.focus();
  1741. return (false);
  1742. }
  1743. if($F('sstate')=='AE' || $F('sstate')=='AA' || $F('sstate')=='AP') {
  1744. if(!$F('spoapo')) {
  1745. alert("Please check the PO/APO box under the SHIPPING details.");
  1746. frm.spoapo.focus();
  1747. return (false);
  1748. }
  1749. }
  1750. if(frm.scountry.selectedIndex < numhomecountries){
  1751. <?php if($numallstates>0){ ?>
  1752. if(frm.sstate.selectedIndex==0){
  1753. alert("<?php print $xxShpDtls?>\n\n<?php print $xxPlsSlct . " " . $xxState?>.");
  1754. frm.sstate.focus();
  1755. return (false);
  1756. }
  1757. <?php } ?>
  1758. }else{
  1759. <?php if($nonhomecountries>0){ ?>
  1760. if(frm.sstate2.value==""){
  1761. alert("<?php print $xxShpDtls?>\n\n<?php print $xxPlsEntr?> \"<?php print str_replace("<br />"," ",$xxNonState)?>\".");
  1762. frm.sstate2.focus();
  1763. return (false);
  1764. }
  1765. <?php } ?>
  1766. }
  1767. if($F('scountry') != 'United States of America' && $('spoapo').checked) {
  1768. $('spoapo').checked = false;
  1769. }
  1770. if(frm.szip.value==""){
  1771. alert("<?php print $xxShpDtls?>\n\n<?php print $xxPlsEntr?> \"<?php print $xxZip?>\".");
  1772. frm.szip.focus();
  1773. return (false);
  1774. }
  1775. if(frm.saddress.value=="") {
  1776. alert("<?php print $xxShpDtls?>\n\n<?php print $xxPlsEntr?> \"<?php print $xxAddress?>\".");
  1777. frm.saddress.focus();
  1778. return (false);
  1779. }
  1780. }
  1781. <?php }
  1782. if($_SERVER['REMOTE_ADDR'] != '70.97.63.5' && $_SERVER['REMOTE_ADDR'] != '65.103.241.197') {
  1783. ?>
  1784. if(frm.remember.checked==false){
  1785. if(confirm("<?php print $xxWntRem?>")){
  1786. frm.remember.checked=true
  1787. }
  1788. }
  1789. <?php
  1790. }
  1791. if(@$termsandconditions==TRUE){ ?>
  1792. if(frm.license.checked==false){
  1793. alert("<?php print $xxPlsProc?>");
  1794. frm.license.focus();
  1795. return (false);
  1796. }
  1797. <?php } ?>
  1798. return (true);
  1799. } // End of checkform
  1800. <?php if(@$termsandconditions==TRUE){ ?>
  1801. function showtermsandconds(){
  1802. newwin=window.open("policy.php?cart=no","Terms","menubar=no, scrollbars=yes, width=950, height=580, directories=no,location=no,resizable=yes,status=no,toolbar=no");
  1803. }
  1804. <?php } ?>
  1805. var savestate=0;
  1806. var ssavestate=0;
  1807. function dosavestate(shp){
  1808. thestate = eval('document.forms.mainform.'+shp+'state');
  1809. eval(shp+'savestate = thestate.selectedIndex');
  1810. }
  1811. function checkNonState(isShipping) {
  1812. if($F('sstate') != "") {
  1813. if(isShipping != "") {
  1814. var hide = document.getElementsByClassName('sstate2Hide');
  1815. for(i=0; i<hide.length; i++) {
  1816. $(hide[i]).style.visibility = "hidden";
  1817. $('sstate2').value = "";
  1818. }
  1819. }else{
  1820. var hide = document.getElementsByClassName('state2Hide');
  1821. for(i=0; i<hide.length; i++) {
  1822. $(hide[i]).style.visibility = "hidden";
  1823. $('state2').value = "";
  1824. }
  1825. }
  1826. }else{
  1827. if(isShipping != "") {
  1828. var hide = document.getElementsByClassName('sstate2Hide');
  1829. for(i=0; i<hide.length; i++) {
  1830. $(hide[i]).style.visibility = "visible";
  1831. }
  1832. }else{
  1833. var hide = document.getElementsByClassName('state2Hide');
  1834. for(i=0; i<hide.length; i++) {
  1835. $(hide[i]).style.visibility = "visible";
  1836. }
  1837. }
  1838. }
  1839. }
  1840. function checkoutspan(shp){
  1841. if(shp=='s' && document.getElementById('saddress').value=="")visib='hidden';else visib='visible';<?php
  1842. if($nonhomecountries>0) print "thestyle = document.getElementById(shp+'outspan').style;\r\n";
  1843. if($numallstates>0){
  1844. print "theddstyle = document.getElementById(shp+'outspandd').style;\r\n";
  1845. print "thestate = eval('document.forms.mainform.'+shp+'state');\r\n";
  1846. } ?>
  1847. thecntry = eval('document.forms.mainform.'+shp+'country');
  1848. if(thecntry.selectedIndex < numhomecountries){<?php
  1849. if($nonhomecountries>0) print "thestyle.visibility='hidden';\r\n";
  1850. if($numallstates>0){
  1851. print "theddstyle.visibility=visib;\r\n";
  1852. print "thestate.disabled=false;\r\n";
  1853. print "eval('thestate.selectedIndex='+shp+'savestate');\r\n";
  1854. } ?>
  1855. }else{<?php
  1856. if($nonhomecountries>0) print "thestyle.visibility=visib;\r\n";
  1857. if($numallstates>0){ ?>
  1858. theddstyle.visibility="hidden";
  1859. if(thestate.disabled==false){
  1860. thestate.disabled=true;
  1861. eval(shp+'savestate = thestate.selectedIndex');
  1862. thestate.selectedIndex=0;}
  1863. <?php } ?>
  1864. }}
  1865. //-->
  1866. </script>
  1867. <?
  1868. // splits the cart page into different funnels
  1869. $google_tracker="/cart/customer_info.php";
  1870. // end
  1871. ?>
  1872. <div id="cart_nav"><img src="/lib/images/new_images/subnav_gray_13.gif" alt="View Order" /><img src="/lib/images/new_images/subnav_green_15.gif" alt="Customer Info" /><img src="/lib/images/new_images/subnav_gray_17.gif" alt="Final Review" /><img src="/lib/images/new_images/subnav_gray_19.gif" alt="Confirmation" /><img src="/lib/images/new_images/subnav_gray_21.gif" alt="View Receipt" /></div>
  1873. <table border="0" cellspacing="<?php print $maintablespacing?>" cellpadding="<?php print $maintablepadding?>" width="<?php print $maintablewidth?>" bgcolor="<?php print $maintablebg?>" align="center">
  1874. <tr>
  1875. <td width="100%">
  1876. <form method="post" name="mainform" action="cart.php" onsubmit="return checkform(this)">
  1877. <input type="hidden" name="mode" value="go" />
  1878. <input type="hidden" name="sessionid" value="<?php print $thesessionid?>" />
  1879. <input type="hidden" name="PARTNER" value="<?php print @$_POST["PARTNER"]?>" />
  1880. <table width="<?php print $innertablewidth?>" border="0" cellspacing="<?php print $innertablespacing?>" cellpadding="<?php print $innertablepadding?>" bgcolor="<?php print $innertablebg?>">
  1881. <tr>
  1882. <td align="center" colspan="4"><strong><?php print $xxCstDtl?></strong></td>
  1883. </tr>
  1884. <?php if(trim(@$extraorderfield1)!=""){ ?>
  1885. <tr>
  1886. <td align="right"><strong><?php if(@$extraorderfield1required==TRUE) print "<font color='#FF0000'>*</font>";
  1887. print $extraorderfield1 ?>:</strong></td>
  1888. <td colspan="3"><?php if(@$extraorderfield1html != "")print $extraorderfield1html; else print '<input type="text" name="ordextra1" size="' . atb(20) . '" value="' . @$ordExtra1 . '" />'?></td>
  1889. </tr>
  1890. <?php } ?>
  1891. <tr>
  1892. <td align="right"><strong><font color='#FF0000'>*</font><?php print $xxName?>:</strong></td>
  1893. <td align="left"><input type="text" name="name" size="<?php print atb(20)?>" value="<?php print @$ordName?>" /></td>
  1894. <td align="right"><strong><font color='#FF0000'>*</font><?php print $xxEmail?>:</strong></td>
  1895. <td align="left"><input type="text" name="email" size="<?php print atb(20)?>" value="<?php print @$ordEmail?>" /></td>
  1896. </tr>
  1897. <tr>
  1898. <td align="right"><strong><?php print $xxPOAPO?>:</strong></td>
  1899. <td align="left" ><input type="checkbox" id="poapo" name="poapo" value="1" <?php if((@$ordPoApo&1)==1) print "checked"?> /> - <em>APOs are sent Priority Postal Service</em></td>
  1900. <td>&nbsp;</td>
  1901. <td align="left" style="font-size:11px; font-style:italic;">*AOL emails may be blocked by AOL.</td>
  1902. </tr>
  1903. <tr>
  1904. <td align="right"><strong><font color='#FF0000'>*</font><?php print $xxAddress?>:</strong></td>
  1905. <td align="left"<?php if(@$useaddressline2==TRUE) print ' colspan="3"'?>><input type="text" name="address" id="address" maxlength="35" size="<?php print atb(25)?>" value="<?php print @$ordAddress?>" /></td>
  1906. <?php if(@$useaddressline2==TRUE){ ?>
  1907. </tr>
  1908. <tr>
  1909. <td align="right"><strong><?php print $xxAddress2?>:</strong></td>
  1910. <td align="left"><input type="text" id="address2" name="address2" maxlength="35" size="<?php print atb(25)?>" value="<?php print @$ordAddress2?>" /></td>
  1911. <?php } ?>
  1912. <td align="right"><strong><font color='#FF0000'>*</font><?php print $xxCity?>:</strong></td>
  1913. <td align="left"><input type="text" name="city" size="<?php print atb(20)?>" value="<?php print @$ordCity?>" /></td>
  1914. </tr>
  1915. <?php if($numallstates>0 || $nonhomecountries != 0){ ?>
  1916. <tr>
  1917. <?php if($numallstates>0){ ?>
  1918. <td align="right"><strong><font color='#FF0000'><span id="outspandd" style="visibility:hidden">*</span></font><?php print $xxState?>:</strong></td>
  1919. <td align="left"><select id="state" name="state" size="1" onchange="dosavestate('')"><?php $havestate = show_states(@$ordState) ?></select></td>
  1920. <?php }
  1921. if($nonhomecountries==0){
  1922. print '<td colspan="2">&nbsp;</td>';
  1923. }else{ ?>
  1924. <td align="right"><strong><font color='#FF0000'><span id="outspan" style="visibility:hidden">*</span></font><?php print $xxNonState?>:</strong></td>
  1925. <td align="left"><input type="text" id="state2" name="state2" size="<?php print atb(20)?>" value="<?php if(! $havestate) print @$ordState?>" /></td>
  1926. <?php }
  1927. if($numallstates<=0) print '<td colspan="2">&nbsp;</td>'; ?>
  1928. </tr>
  1929. <?php } ?>
  1930. <tr>
  1931. <td align="right"><strong><font color='#FF0000'>*</font><?php print $xxCountry?>:</strong></td>
  1932. <td align="left"><select id="country" name="country" size="1" onchange="checkoutspan('')">
  1933. <?php show_countries($_SESSION['thisshipcountry']) ?>
  1934. </select>
  1935. </td>
  1936. <td align="right"><strong><font color='#FF0000'>*</font><?php print $xxZip?>:</strong></td>
  1937. <td align="left"><input type="text" name="zip" size="<?php print atb(10)?>" value="<?php print @$ordZip?>" /></td>
  1938. </tr>
  1939. <tr>
  1940. <td align="right"><strong><font color='#FF0000'>*</font><?php print $xxPhone?>:</strong></td>
  1941. <td align="left"<?php if(trim(@$extraorderfield2)=="") print ' colspan="3"'; ?>><input type="text" name="phone" size="<?php print atb(20)?>" value="<?php print @$ordPhone?>" /></td>
  1942. <?php if(trim(@$extraorderfield2)!=""){ ?>
  1943. <td align="right"><strong><?php if(@$extraorderfield2required==TRUE) print '<font color="#FF0000">*</font>';
  1944. print $extraorderfield2 ?>:</strong></td>
  1945. <td align="left"><?php if(@$extraorderfield2html != "")print $extraorderfield2html; else print '<input type="text" name="ordextra2" size="' . atb(20) . '" value="' . @$ordExtra2 . '" />'?></td>
  1946. <?php } ?>
  1947. </tr>
  1948. <?php if(@$commercialloc==TRUE || $shipType==4){ ?>
  1949. <tr>
  1950. <td align="right"><input type="checkbox" name="commercialloc" value="Y" <?php if((@$ordComLoc&1)==1) print "checked"?> /></td>
  1951. <td align="left" colspan="3"><font size="1"><?php print $xxComLoc ?></font></td>
  1952. </tr>
  1953. <?php }
  1954. if(abs(@$addshippinginsurance)==2){ ?>
  1955. <tr>
  1956. <td align="right"><input type="checkbox" name="wantinsurance" value="Y" <?php if((@$ordComLoc&2)==2) print "checked"?> /></td>
  1957. <td align="left" colspan="3"><font size="1"><?php print $xxWantIns ?></font></td>
  1958. </tr>
  1959. <?php }
  1960. if(@$noshipaddress!=TRUE){ ?>
  1961. <style type="text/css">
  1962. <!--
  1963. img {
  1964. border: 0px;
  1965. }
  1966. -->
  1967. </style>
  1968. <?
  1969. //if($_POST['editwhat']!='shipping') {
  1970. //$shipbuttondisp='';
  1971. //$shipinfodisp='style="display: none;"';
  1972. //} else {
  1973. //$shipbuttondisp='style="display: none;"';
  1974. //$shipinfodisp='';
  1975. //}
  1976. ?>
  1977. <!--<tr id="showShipping" <?=$shipbuttondisp?>>
  1978. <td align="center" colspan="4"><a onclick="showDetails();" style="cursor: pointer"><img src="/lib/images/ship_different.gif" alt="click here to ship your order to a different address then your billing address" /></a></td>
  1979. </tr>-->
  1980. <tr class="shippingDetails" <?=$shipinfodisp?>>
  1981. <td width="100%" align="center" colspan="4"><strong><a name="shippingInfo"></a><?php print $xxShpDiff?></strong></td>
  1982. </tr>
  1983. <tr class="shippingDetails" <?=$shipinfodisp?>>
  1984. <td align="right"><strong><?php print $xxName?>:</strong></td>
  1985. <td align="left" colspan="3"><input type="text" id="sname" name="sname" size="<?php print atb(20)?>" value="<?=$ordShipName?>" /></td>
  1986. </tr>
  1987. <tr class="shippingDetails" <?=$shipinfodisp?>>
  1988. <td align="right"><strong><?php print $xxPOAPO?>:</strong></td>
  1989. <td align="left" colspan="3"><input type="checkbox" id="spoapo" name="spoapo" value="1" <?php if((@$ordShipPoApo&1)==1) print "checked"?> /> - <em>APOs are sent Priority Postal Service</em></td>
  1990. </tr>
  1991. <tr class="shippingDetails" <?=$shipinfodisp?>>
  1992. <td align="right"><strong><?php print $xxAddress?>:</strong></td>
  1993. <td align="left"<?php if(@$useaddressline2==TRUE) print ' colspan="3"'?>><input type="text" name="saddress" id="saddress" maxlength="35" size="<?php print atb(25)?>" value="<?php print @$ordShipAddress?>" /></td>
  1994. <?php if(@$useaddressline2==TRUE){ ?>
  1995. </tr>
  1996. <tr class="shippingDetails" <?=$shipinfodisp?>>
  1997. <td align="right"><strong><?php print $xxAddress2?>:</strong></td>
  1998. <td align="left"><input type="text" id="saddress2" name="saddress2" maxlength="35" size="<?php print atb(25)?>" value="<?php print @$ordShipAddress2?>" /></td>
  1999. <?php } ?>
  2000. <td align="right"><strong><?php print $xxCity?>:</strong></td>
  2001. <td align="left"><input type="text" id="scity" name="scity" size="<?php print atb(20)?>" value="<?php print @$ordShipCity?>" /></td>
  2002. </tr>
  2003. <?php if($numallstates>0 || $nonhomecountries != 0){ ?>
  2004. <tr class="shippingDetails" <?=$shipinfodisp?>>
  2005. <?php if($numallstates>0){ ?>
  2006. <td align="right"><strong><font color='#FF0000'><span id="soutspandd" style="visibility:hidden">*</span></font><?php print $xxState?>:</strong></td>
  2007. <td align="left"><select id="sstate" name="sstate" size="1" onchange="dosavestate('s'); checkNonState('s');"><?php $havestate = show_states(@$ordShipState) ?></select></td>
  2008. <?php }
  2009. if($nonhomecountries==0){
  2010. print '<td colspan="2">&nbsp;</td>';
  2011. }else{ ?>
  2012. <td class="sstate2Hide" align="right"><strong><font color='#FF0000'><span id="soutspan" style="visibility:hidden">*</span></font><?php print $xxNonState?>:</strong></td>
  2013. <td class="sstate2Hide" align="left"><input type="text" id="sstate2" name="sstate2" size="<?php print atb(20)?>" value="<?php if(! $havestate) print @$ordShipState?>" /></td>
  2014. <?php }
  2015. if($numallstates<=0) print '<td colspan="2">&nbsp;</td>'; ?>
  2016. </tr>
  2017. <?php } ?>
  2018. <tr class="shippingDetails" <?=$shipinfodisp?>>
  2019. <td align="right"><strong><?php print $xxCountry?>:</strong></td>
  2020. <td align="left"><select name="scountry" id="scountry" size="1" onchange="checkoutspan('s')">
  2021. <?php if($_POST['scountry']!="") $scountry2= $_POST['scountry']; else $scountry2 = $_SESSION['thisshipcountry'];
  2022. show_countries($scountry2); ?>
  2023. </select>
  2024. </td>
  2025. <td align="right"><strong><?php print $xxZip?>:</strong></td>
  2026. <td align="left"><input type="text" id="szip" name="szip" size="<?php print atb(10)?>" value="<?php print @$ordShipZip?>" /></td>
  2027. </tr>
  2028. <script type="text/javascript">
  2029. <!--
  2030. //$('sname').value = '';
  2031. //$('spoapo').checked = false;
  2032. //$('saddress').value = '';
  2033. //$('saddress2').value = '';
  2034. // $('scity').value = '';
  2035. // $('sstate2').value = '';
  2036. // $('scountry').selectedIndex = 0;
  2037. // $('szip').value = '';
  2038. // $('sstate').selectedIndex = 0;
  2039. -->
  2040. </script>
  2041. <?php } // $noshipaddress ?>
  2042. <!--<tr>
  2043. <td align="center" colspan="4">
  2044. <strong><?php print $xxAddInf?>.</strong><br />
  2045. <textarea name="ordAddInfo" rows="3" wrap=virtual cols="<?php print atb(44)?>"><?php print @$ordAddInfo?></textarea>
  2046. </td>
  2047. </tr>-->
  2048. <tr >
  2049. <td colspan="4"><div style="border-bottom:dotted 1px #3C3C3C; ">&nbsp;</div></td>
  2050. </tr>
  2051. <tr>
  2052. <td align="center" colspan="4"><input type="checkbox" name="remember" value="1" <?php if($remember) print "checked"?> />
  2053. <strong><?php print $xxRemMe?></strong><br />
  2054. <font size="1"><?php print $xxOpCook?></font>
  2055. </td>
  2056. </tr>
  2057. <?php if(!@$nogiftcertificate){ ?>
  2058. <tr>
  2059. <td align="right" colspan="2"><strong><?php print $xxGifNum?>:</strong></td><td colspan="2"><input type="text" name="cpncode" size="<?php print atb(20)?>" value="<?=@$_POST["cpncode"]?>" /></td>
  2060. </tr>
  2061. <tr>
  2062. <td align="center" colspan="4"><font size="1"><?php print $xxGifEnt?></font></td>
  2063. </tr>
  2064. <?php
  2065. }
  2066. //HCS - DRE 03/07/05 Gift Cert Mode START
  2067. $notcerts = 1;
  2068. $sqlstr = "SELECT cartProdID FROM cart LEFT JOIN products ON cartProdID = pID
  2069. WHERE cartSessionID='".trim(@$_POST["sessionid"])."' AND cartCompleted = 0 AND p_iscert = 1";
  2070. $notcerts = mysql_num_rows(mysql_query($sqlstr));
  2071. if ($notcerts == 0) {
  2072. ?>
  2073. <tr>
  2074. <td align="right" colspan="2"><strong>Gift Certificate Code:</strong></td><td colspan="2"><input type="text" name="cert_code" size="<?php print atb(20)?>" value="<?=$_POST['cert_code'];?>"></td>
  2075. </tr>
  2076. <tr>
  2077. <td align="center" colspan="4"><font size="1"><a href="/certificates.php#balance">Click here to check your Gift Certificate's status</a></font></td>
  2078. </tr>
  2079. <?php }
  2080. ?>
  2081. <tr>
  2082. <td align="center" colspan="4"><font size="1">Note: Gift certificates cannot be used to pay for any gift certificates you may have in your current order. <br />Only one gift certificate can be used per order. </font></td>
  2083. </tr>
  2084. <?php
  2085. $arecerts = 1;
  2086. $sqlstr = "SELECT cartProdID FROM cart LEFT JOIN products ON cartProdID = pID
  2087. WHERE cartSessionID='".trim(@$_POST["sessionid"])."' AND cartCompleted = 0 AND p_iscert > 0";
  2088. $arecerts = mysql_num_rows(mysql_query($sqlstr));
  2089. if ($arecerts > 0) {
  2090. //$sSQL = "SELECT payProvID, PayProvShow FROM payprovider WHERE payProvEnabled=1 AND payProvID <> 4 ORDER BY payProvOrder";
  2091. $sSQL = "SELECT payProvID,".getlangid("payProvShow",128)." FROM payprovider WHERE payProvEnabled=1 AND payProvID <> 4 ORDER BY payProvOrder";
  2092. }else{
  2093. //$sSQL = "SELECT payProvID,PayProvShow FROM payprovider WHERE payProvEnabled=1 ORDER BY payProvOrder";
  2094. $sSQL = "SELECT payProvID,".getlangid("payProvShow",128)." FROM payprovider WHERE payProvEnabled=1 ORDER BY payProvOrder";
  2095. }
  2096. //HCS - DRE 03/07/05 Gift Cert Mode STOP
  2097. ?>
  2098. <tr>
  2099. <td colspan="2" style="font-weight: bold; text-align: right">How did you hear about us?</td>
  2100. <td colspan="2">
  2101. <select name="howfound">
  2102. <option value="" <?php if (!(strcmp("", $_POST['howfound']))) {echo "selected=\"selected\"";} ?>>Select...</option>
  2103. <option value="macworld" <?php if (!(strcmp("macworld", $_POST['howfound']))) {echo "selected=\"selected\"";} ?>>MacWorld</option>
  2104. <option value="ipodlounge" <?php if (!(strcmp("ipodlounge", $_POST['howfound']))) {echo "selected=\"selected\"";} ?>>iPod Lounge</option>
  2105. <option value="rollingstones" <?php if (!(strcmp("rollingstones", $_POST['howfound']))) {echo "selected=\"selected\"";} ?>>Rolling Stones</option>
  2106. <option value="google" <?php if (!(strcmp("google", $_POST['howfound']))) {echo "selected=\"selected\"";} ?>>Google</option>
  2107. <option value="friend" <?php if (!(strcmp("friend", $_POST['howfound']))) {echo "selected=\"selected\"";} ?>>A Friend</option>
  2108. <option value="other" <?php if (!(strcmp("other", $_POST['howfound']))) {echo "selected=\"selected\"";} ?>>Other</option>
  2109. </select>
  2110. </td>
  2111. </tr>
  2112. <?php
  2113. if(@$_SESSION["clientLoginLevel"] != "") $minloglevel=$_SESSION["clientLoginLevel"]; else $minloglevel=0;
  2114. /*$minaccesslevel=0;
  2115. if(@$_SESSION['cust_pay_meth']!= "" && @$_SESSION['cust_pay_meth']!=0){
  2116. if((@$_SESSION['cust_pay_meth'] & 1) == 1) $minaccesslevel=1;
  2117. if((@$_SESSION['cust_pay_meth'] & 2) == 2) $minaccesslevel=2;
  2118. }*/
  2119. $sSQL = "SELECT payProvID,".getlangid("payProvShow",128)." FROM payprovider WHERE payProvEnabled=1 AND payProvID<19";
  2120. if(!empty($WSP)) $sSQL .=" AND payProvID IN ('".str_replace(',',"','",$_SESSION['cust_pay_meth'])."')";
  2121. else $sSQL .=" AND payProvLevel=0";
  2122. $sSQL .=" ORDER BY payProvOrder";
  2123. $result = mysql_query($sSQL) or print(mysql_error());
  2124. if(mysql_num_rows($result)==0){
  2125. ?>
  2126. <tr>
  2127. <td colspan="4" align="center"><strong><?php print $xxNoPay?></strong></td>
  2128. </tr>
  2129. <?php
  2130. }elseif(mysql_num_rows($result)==1){
  2131. $rs = mysql_fetch_array($result);
  2132. ?>
  2133. <tr>
  2134. <td colspan="4" align="center"><input type="hidden" name="payprovider" value="<?php print $rs["payProvID"]?>" /><strong><?php print $xxClkCmp?></strong></td>
  2135. </tr>
  2136. <?php
  2137. }else{
  2138. ?> <tr>
  2139. <td colspan="4" align="center"><p><strong><?php print $xxPlsChz?></strong></p>
  2140. <p><select name="payprovider" size="1">
  2141. <?php
  2142. while($rs = mysql_fetch_array($result)){
  2143. print "<option value='" . $rs["payProvID"] . "'";
  2144. if(@$ordPayProvider==$rs["payProvID"]) print " selected";
  2145. print ">" . $rs[getlangid("payProvShow",128)] . "</option>\n";
  2146. }
  2147. ?>
  2148. </select></p>
  2149. </td>
  2150. </tr>
  2151. <?php
  2152. }
  2153. if($emaillist) {
  2154. ?>
  2155. <tr>
  2156. <td colspan="4" align="center"><input type="checkbox" name="addtoemaillist" value="1" checked="checked" /> <strong><?=$xxELSub?></strong></td>
  2157. </tr>
  2158. <?php
  2159. }
  2160. ?>
  2161. <?php if(@$termsandconditions==TRUE){ ?>
  2162. <tr>
  2163. <td align="center" colspan="4"><input type="checkbox" name="license" value="1" />
  2164. <?php print $xxTermsCo?>
  2165. </td>
  2166. </tr>
  2167. <?php } ?>
  2168. <tr>
  2169. <td width="50%" align="center" colspan="4"><input type="image" src="/lib/images/final_review.gif" border="0" /></td>
  2170. </tr>
  2171. </table>
  2172. </form>
  2173. </td>
  2174. </tr>
  2175. </table>
  2176. <script language="JavaScript" type="text/javascript">
  2177. <?php
  2178. if($numallstates>0) print "savestate = document.forms.mainform.state.selectedIndex;\r\n";
  2179. print 'numhomecountries=' . $numhomecountries . ";\r\n";
  2180. print "checkoutspan('');\r\n";
  2181. if(@$noshipaddress!=TRUE){
  2182. if($numallstates>0) print "ssavestate = document.forms.mainform.sstate.selectedIndex;\r\n";
  2183. print "checkoutspan('s')\r\n";
  2184. } ?></script>
  2185. <?php
  2186. }elseif(@$_POST["mode"]=="go" || $paypalexpress){
  2187. //HCS - DRE 03/07/05 Gift Cert Mode START
  2188. $cert_code = trim(str_replace("'","",@$_POST["cert_code"]));
  2189. $gcdiscount = 0;
  2190. $strsql = "SELECT cert_amt FROM certificates WHERE UPPER(cert_code) = '".strtoupper($cert_code)."' AND cert_exp_dt >=".time();
  2191. $result = mysql_query($strsql);
  2192. $certfound = 1;
  2193. if(isset($_POST["cert_code"]) && $_POST["cert_code"] != "") {
  2194. $certfound = mysql_num_rows($result);
  2195. }
  2196. if($certfound == 0) {
  2197. $gcmessage = "<font size=\"1\">The certificate number you entered was not found, has expired or is not applicable. ";
  2198. $gcmessage .= "Please <strong><a href=\"javascript:history.go(-2)\">click here</a></strong> if you wish to go back and try again.</font>";
  2199. }
  2200. if($rs=mysql_fetch_assoc($result)) {
  2201. $gcdiscount = $rs['cert_amt'];
  2202. }
  2203. //HCS - DRE 03/07/05 Gift Cert Mode STOP
  2204. // COUPON MANAGEMENT ADDED by Chad 08/09/06
  2205. $cc_sql = "SELECT * FROM coupons WHERE cpnNumber = '".$_POST['cpncode']."' AND cpnIsCoupon = 1 AND cpnNumAvail <= 1";
  2206. $cc_res = mysql_query($cc_sql) or print(mysql_error());
  2207. for($j=0;$cc_row = mysql_fetch_assoc($cc_res);$j++) {
  2208. $_SESSION['chads_coupons'][$j] = $cc_row;
  2209. }
  2210. //showarray($_SESSION['chads_coupons']);
  2211. // COUPON MANAGEMENT ENDED
  2212. if ($addtoemaillist) {
  2213. $subscriber = new Subscriber('MAIL_CHIMP_IFROGZ');
  2214. $subscriber->set_mailing_list('iFrogz Promotions');
  2215. $data = array();
  2216. $space = strpos($_POST['name'], ' ');
  2217. if (!$space) {
  2218. $firstname = $_POST['name'];
  2219. $lastname = ' ';
  2220. } else {
  2221. $firstname = substr($_POST['name'], 0, $space);
  2222. $lastname = trim(substr($_POST['name'], $space));
  2223. }
  2224. $data['first_name'] = $firstname;
  2225. $data['last_name'] = $lastname;
  2226. if (!empty($_POST['address'])) { $data['address_1'] = $_POST['address']; }
  2227. if (!empty($_POST['address2'])) { $data['address_2'] = $_POST['address2']; }
  2228. if (!empty($_POST['city'])) { $data['city'] = $_POST['city']; }
  2229. if (!empty($_POST['state']) || !empty($_POST['address'])) { $data['state'] = $_POST['state'] . $_POST['state2']; }
  2230. if (!empty($_POST['zip'])) { $data['postal_code'] = $_POST['zip']; }
  2231. if (!empty($_POST['country'])) { $data['country'] = $_POST['country']; }
  2232. if (!empty($_POST['phone'])) { $data['phone'] = $_POST['phone']; }
  2233. $data['custom_ordered'] = date('Y-m-d H:i:s');
  2234. $data['custom_subscribed'] = 'order';
  2235. if (is_array($_SESSION['itemsInCart'])) {
  2236. $data['custom_products'] = implode(' ', $_SESSION['itemsInCart']);
  2237. }
  2238. $subscriber->set_subscriber($_POST['email'], $data);
  2239. $subscriber->subscribe();
  2240. // VALIDATE
  2241. if(ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*",$_POST['email'])) {
  2242. // CHECK FOR DUPLICATE EMAIL
  2243. $sql = "SELECT * FROM email_lists
  2244. WHERE email = '".mysql_real_escape_string($_POST['email'])."'
  2245. AND subscribed = 'ifrogz'";
  2246. $res = mysql_query($sql) or print(mysql_error());
  2247. if(mysql_num_rows($res) <= 0) {
  2248. $name=explode(' ',$_POST['name']);
  2249. $sql = "INSERT INTO email_lists ( firstname, lastname, email , ordered , subscribed , status )
  2250. VALUES ( '".$name[0]."','".$name[1]."','".mysql_real_escape_string($_POST['email'])."' , '".date("Y-m-d H:i:s")."' , 'ifrogz' , 'active' )";
  2251. $res = mysql_query($sql) or print(mysql_error());
  2252. }
  2253. }
  2254. }
  2255. // EMAIL LIST OPTION ENDED
  2256. if(! $paypalexpress){
  2257. $thesessionid = trim(unstripslashes(@$_POST["sessionid"]));
  2258. $ordName = trim(unstripslashes(@$_POST["name"]));
  2259. $ordPoApo = trim(unstripslashes(@$_POST["poapo"]));
  2260. $ordHowFound = trim(unstripslashes(@$_POST["howfound"]));
  2261. $ordAddress = trim(unstripslashes(@$_POST["address"]));
  2262. $ordAddress2 = trim(unstripslashes(@$_POST["address2"]));
  2263. $ordCity = trim(unstripslashes(@$_POST["city"]));
  2264. if(trim(@$_POST["state"]) != "")
  2265. $ordState = trim(unstripslashes(@$_POST["state"]));
  2266. else
  2267. $ordState = trim(unstripslashes(@$_POST["state2"]));
  2268. $ordZip = trim(unstripslashes(@$_POST["zip"]));
  2269. $ordCountry = trim(unstripslashes(@$_POST["country"]));
  2270. $ordEmail = trim(unstripslashes(@$_POST["email"]));
  2271. $ordPhone = trim(unstripslashes(@$_POST["phone"]));
  2272. $ordShipName = trim(unstripslashes(@$_POST["sname"]));
  2273. $ordShipPoApo = trim(unstripslashes(@$_POST["spoapo"]));
  2274. $ordShipAddress = trim(unstripslashes(@$_POST["saddress"]));
  2275. $ordShipAddress2 = trim(unstripslashes(@$_POST["saddress2"]));
  2276. $ordShipCity = trim(unstripslashes(@$_POST["scity"]));
  2277. if(trim(@$_POST["sstate"]) != "")
  2278. $ordShipState = trim(unstripslashes(@$_POST["sstate"]));
  2279. else
  2280. $ordShipState = trim(unstripslashes(@$_POST["sstate2"]));
  2281. $ordShipZip = trim(unstripslashes(@$_POST["szip"]));
  2282. $ordShipCountry = trim(unstripslashes(@$_POST["scountry"]));
  2283. $commercialloc = trim(@$_POST["commercialloc"]);
  2284. $wantinsurance = trim(@$_POST["wantinsurance"]);
  2285. if($commercialloc=="Y") $ordComLoc = 1; else $ordComLoc = 0;
  2286. if($wantinsurance=="Y" || abs(@$addshippinginsurance)==1) $ordComLoc += 2;
  2287. $ordAffiliate = trim(unstripslashes(@$_POST["PARTNER"]));
  2288. $ordExtra1 = trim(unstripslashes(@$_POST["ordextra1"]));
  2289. $ordExtra2 = trim(unstripslashes(@$_POST["ordextra2"]));
  2290. $ordAddInfo = trim(unstripslashes(@$_POST["ordAddInfo"]));
  2291. }
  2292. if($ordShipAddress != ""){
  2293. $shipcountry = $ordShipCountry;
  2294. $shipstate = $ordShipState;
  2295. $destZip = $ordShipZip;
  2296. }else{
  2297. $shipcountry = $ordCountry;
  2298. $shipstate = $ordState;
  2299. $destZip = $ordZip;
  2300. }
  2301. $sSQL = "SELECT countryID,countryCode,countryOrder FROM countries WHERE countryName='" . mysql_real_escape_string($ordCountry) . "'";
  2302. $result = mysql_query($sSQL) or print(mysql_error());
  2303. if($rs = mysql_fetch_array($result)){
  2304. $countryID = $rs["countryID"];
  2305. $countryCode = $rs["countryCode"];
  2306. $homecountry = ($rs["countryOrder"]==2);
  2307. }
  2308. mysql_free_result($result);
  2309. if(! $homecountry) $perproducttaxrate=FALSE;
  2310. $sSQL = "SELECT countryID,countryTax,countryCode,countryFreeShip,countryOrder FROM countries WHERE countryName='" . mysql_real_escape_string($shipcountry) . "'";
  2311. $result = mysql_query($sSQL) or print(mysql_error());
  2312. if($rs = mysql_fetch_array($result)){
  2313. $countryTaxRate = $rs["countryTax"];
  2314. $shipCountryID = $rs["countryID"];
  2315. $shipCountryCode = $rs["countryCode"];
  2316. $freeshipapplies = ($rs["countryFreeShip"]==1);
  2317. $shiphomecountry = ($rs["countryOrder"]==2);
  2318. }
  2319. mysql_free_result($result);
  2320. if($homecountry){
  2321. $sSQL = "SELECT stateTax,stateAbbrev FROM states WHERE stateAbbrev='" . mysql_real_escape_string($ordState) . "'";
  2322. $result = mysql_query($sSQL) or print(mysql_error());
  2323. if($rs = mysql_fetch_array($result))
  2324. $stateAbbrev=$rs["stateAbbrev"];
  2325. mysql_free_result($result);
  2326. }
  2327. if($shiphomecountry){
  2328. $sSQL = "SELECT stateTax,stateAbbrev,stateFreeShip FROM states WHERE stateAbbrev='" . mysql_real_escape_string($shipstate) . "'";
  2329. $result = mysql_query($sSQL) or print(mysql_error());
  2330. if($rs = mysql_fetch_array($result)){
  2331. $stateTaxRate=$rs["stateTax"];
  2332. $shipStateAbbrev=$rs["stateAbbrev"];
  2333. $freeshipapplies = ($freeshipapplies && ($rs["stateFreeShip"]==1));
  2334. }
  2335. mysql_free_result($result);
  2336. }
  2337. initshippingmethods();
  2338. $sSQL = "SELECT cartID,cartProdID,cartProdPrice,cartQuantity,pWeight,pShipping,pShipping2,pExemptions,pSection,topSection,pDims,pTax FROM cart LEFT JOIN products ON cart.cartProdID=products.pId LEFT OUTER JOIN sections ON products.pSection=sections.sectionID WHERE cartCompleted=0 AND cartSessionID='" . $thesessionid . "'";
  2339. $allcart = mysql_query($sSQL) or print(mysql_error());
  2340. if(($itemsincart=mysql_num_rows($allcart))==0) $allcart = "";
  2341. if($success && $allcart != ""){
  2342. $rowcounter = 0;
  2343. $index=0;
  2344. while($rsCart=mysql_fetch_array($allcart)){
  2345. $index++;
  2346. $sSQL = "SELECT SUM(coPriceDiff) AS coPrDff FROM cartoptions WHERE coCartID=". $rsCart["cartID"];
  2347. $result = mysql_query($sSQL) or print(mysql_error());
  2348. if($rs = mysql_fetch_array($result)){
  2349. $rsCart["cartProdPrice"] += (double)$rs["coPrDff"];
  2350. }
  2351. mysql_free_result($result);
  2352. $sSQL = "SELECT SUM(coWeightDiff) AS coWghtDff FROM cartoptions WHERE coCartID=". $rsCart["cartID"];
  2353. $result = mysql_query($sSQL) or print(mysql_error());
  2354. if($rs = mysql_fetch_array($result)){
  2355. $rsCart["pWeight"] += (double)$rs["coWghtDff"];
  2356. }
  2357. mysql_free_result($result);
  2358. $runTot=$rsCart["cartProdPrice"] * (int)($rsCart["cartQuantity"]);
  2359. $totalquantity += (int)($rsCart["cartQuantity"]);
  2360. $totalgoods += $runTot;
  2361. $thistopcat=0;
  2362. if(trim(@$_SESSION["clientUser"]) != "") $rsCart["pExemptions"] = ((int)$rsCart["pExemptions"] | (int)$_SESSION["clientActions"]);
  2363. if(($shipType==2 || $shipType==3 || $shipType==4 || $shipType==6) && (double)$rsCart["pWeight"]<=0.0)
  2364. $rsCart["pExemptions"] = ($rsCart["pExemptions"] | 4);
  2365. if(($rsCart["pExemptions"] & 1)==1) $statetaxfree += $runTot;
  2366. if(@$perproducttaxrate==TRUE){
  2367. if(is_null($rsCart["pTax"])) $rsCart["pTax"] = $countryTaxRate;
  2368. if(($rsCart["pExemptions"] & 2) != 2) $countryTax += (($rsCart["pTax"] * $runTot) / 100.0);
  2369. }else{
  2370. if(($rsCart["pExemptions"] & 2)==2) $countrytaxfree += $runTot;
  2371. }
  2372. if(($rsCart["pExemptions"] & 4)==4) $shipfreegoods += $runTot;
  2373. addproducttoshipping($rsCart, $index);
  2374. }
  2375. calculatediscounts(round($totalgoods,2), true, $cpncode);
  2376. if(@$_POST["shipping"] != ""){
  2377. $shipArr = split('\|',$_POST["shipping"],3);
  2378. $shipping = (double)$shipArr[0];
  2379. $isstandardship = ((int)$shipArr[1]==1);
  2380. $shipMethod = $shipArr[2];
  2381. }else
  2382. calculateshipping();
  2383. if(trim(@$_POST["shipping"])=="" && $alternaterates && $somethingToShip) $checkIntOptions = TRUE;
  2384. //$checkIntOptions = FALSE;
  2385. if(is_numeric(@$shipinsuranceamt) && trim(@$_POST["shipping"])=="" && $somethingToShip){
  2386. if(($wantinsurance=="Y" && @$addshippinginsurance==2) || @$addshippinginsurance==1){
  2387. for($index3=0; $index3 < $maxshipoptions; $index3++)
  2388. $intShipping[$index3][2] += (((double)$totalgoods*(double)$shipinsuranceamt)/100.0);
  2389. $shipping += (((double)$totalgoods*(double)$shipinsuranceamt)/100.0);
  2390. }elseif(($wantinsurance=="Y" && @$addshippinginsurance==-2) || @$addshippinginsurance==-1){
  2391. for($index3=0; $index3 < $maxshipoptions; $index3++)
  2392. $intShipping[$index3][2] += $shipinsuranceamt;
  2393. $shipping += $shipinsuranceamt;
  2394. }
  2395. }
  2396. if(@$taxShipping==1 && trim(@$_POST["shipping"])==""){
  2397. for($index3=0; $index3 < $maxshipoptions; $index3++)
  2398. $intShipping[$index3][2] += ((double)$intShipping[$index3][2]*((double)$stateTaxRate+(double)$countryTaxRate))/100.0;
  2399. $shipping += ((double)$shipping*((double)$stateTaxRate+(double)$countryTaxRate))/100.0;
  2400. }
  2401. if(@$taxHandling==1){
  2402. $handling += ((double)$handling*((double)$stateTaxRate+(double)$countryTaxRate))/100.0;
  2403. }
  2404. if(! $checkIntOptions){
  2405. calculateshippingdiscounts(true);
  2406. if(@$_SESSION["clientUser"] != "" && @$_SESSION["clientActions"] != 0) $cpnmessage .= $xxLIDis . $_SESSION["clientUser"] . "<br />";
  2407. $cpnmessage = substr($cpnmessage,6);
  2408. if($totaldiscounts > $totalgoods) $totaldiscounts = $totalgoods;
  2409. $usehst=false;
  2410. if(@$canadataxsystem==true && $shipCountryID==2 && ($shipStateAbbrev=="NB" || $shipStateAbbrev=="NF" || $shipStateAbbrev=="NS"))
  2411. $usehst=true;
  2412. if(@$canadataxsystem==true && $shipCountryID==2 && ($shipStateAbbrev=="PE" || $shipStateAbbrev=="QC")){
  2413. $statetaxable = 0;
  2414. $countrytaxable = 0;
  2415. if(@$taxShipping==2 && ($shipping - $freeshipamnt > 0)){
  2416. if(@$proratashippingtax==TRUE){
  2417. if($totalgoods>0) $statetaxable += (((double)$totalgoods-((double)$totaldiscounts+(double)$statetaxfree)) / $totalgoods) * ((double)$shipping-(double)$freeshipamnt);
  2418. }else
  2419. $statetaxable += ((double)$shipping-(double)$freeshipamnt);
  2420. $countrytaxable += ((double)$shipping-(double)$freeshipamnt);
  2421. }
  2422. if(@$taxHandling==2){
  2423. $statetaxable += (double)$handling;
  2424. $countrytaxable += (double)$handling;
  2425. }
  2426. if($totalgoods>0){
  2427. $statetaxable += ((double)$totalgoods-((double)$totaldiscounts+(double)$statetaxfree));
  2428. $countrytaxable += ((double)$totalgoods-((double)$totaldiscounts+(double)$countrytaxfree));
  2429. }
  2430. $countryTax = $countrytaxable*(double)$countryTaxRate/100.0;
  2431. $stateTax = ($statetaxable+(double)$countryTax)*(double)$stateTaxRate/100.0;
  2432. }else{
  2433. if($totalgoods>0){
  2434. $stateTax = ((double)$totalgoods-((double)$totaldiscounts+(double)$statetaxfree))*(double)$stateTaxRate/100.0;
  2435. if(@$perproducttaxrate != TRUE) $countryTax = ((double)$totalgoods-((double)$totaldiscounts+(double)$countrytaxfree))*(double)$countryTaxRate/100.0;
  2436. }
  2437. if(@$taxShipping==2 && ($shipping - $freeshipamnt > 0)){
  2438. if(@$proratashippingtax==TRUE){
  2439. if($totalgoods>0) $stateTax += (((double)$totalgoods-((double)$totaldiscounts+(double)$statetaxfree)) / $totalgoods) * (((double)$shipping-(double)$freeshipamnt)*(double)$stateTaxRate/100.0);
  2440. }else
  2441. $stateTax += (((double)$shipping-(double)$freeshipamnt)*(double)$stateTaxRate/100.0);
  2442. $countryTax += (((double)$shipping-(double)$freeshipamnt)*(double)$countryTaxRate/100.0);
  2443. }
  2444. if(@$taxHandling==2){
  2445. $stateTax += ((double)$handling*(double)$stateTaxRate/100.0);
  2446. $countryTax += ((double)$handling*(double)$countryTaxRate/100.0);
  2447. }
  2448. }
  2449. $totalgoods = round($totalgoods,2);
  2450. $shipping = round($shipping,2);
  2451. $stateTax = round($stateTax,2);
  2452. $countryTax = round($countryTax,2);
  2453. $handling = round($handling,2);
  2454. //HCS - DRE 03/07/05 Gift Cert Mod START
  2455. $notcerts = 1;
  2456. $sqlstr = "SELECT cartProdID FROM cart LEFT JOIN products ON cartProdID = pID
  2457. WHERE cartSessionID='".trim(@$_POST["sessionid"])."' AND cartCompleted = 0 AND p_iscert = 0";
  2458. $notcerts = mysql_num_rows(mysql_query($sqlstr));
  2459. if($notcerts == 0) {
  2460. $handling = 0;
  2461. }
  2462. //HCS - DRE 03/07/05 Gift Cert Mod STOP
  2463. if($stateTax < 0) $stateTax = 0;
  2464. if($countryTax < 0) $countryTax = 0;
  2465. $freeshipamnt = round($freeshipamnt, 2);
  2466. $totaldiscounts = round($totaldiscounts, 2);
  2467. $grandtotal = round(($totalgoods + $shipping + $stateTax + $countryTax + $handling) - ($totaldiscounts + $freeshipamnt), 2);
  2468. if($grandtotal < 0) $grandtotal = 0;
  2469. //HCS - DRE 03/02/05 Gift Cert Mod START
  2470. $gctotal = 0;
  2471. $sqlstr = "SELECT cartProdID, cartProdPrice, cartQuantity FROM cart LEFT JOIN products ON cartProdID = pID
  2472. WHERE cartSessionID='".trim(@$_POST["sessionid"])."' AND cartCompleted = 0 AND p_iscert > 0";
  2473. $result = mysql_query($sqlstr);
  2474. while($rs=mysql_fetch_assoc($result)) {
  2475. $gctotal += $rs['cartProdPrice'] * $rs['cartQuantity'];
  2476. }
  2477. $pendingamt = 0;
  2478. if($gcdiscount) {
  2479. if($gcdiscount >= ($grandtotal - $gctotal)) {
  2480. $pendingamt = $grandtotal - $gctotal;
  2481. $grandtotal = $gctotal;
  2482. }else{
  2483. $pendingamt = $gcdiscount;
  2484. $grandtotal -= $gcdiscount;
  2485. }
  2486. }
  2487. //HCS - DRE 03/02/05 Gift Cert Mod STOP
  2488. $sSQL = "SELECT ordID FROM orders WHERE ordSessionID='" . mysql_real_escape_string($thesessionid) . "' AND ordAuthNumber=''";
  2489. $result = mysql_query($sSQL) or print(mysql_error());
  2490. if($rs = mysql_fetch_array($result))
  2491. $orderid=$rs["ordID"];
  2492. else
  2493. $orderid="";
  2494. mysql_free_result($result);
  2495. if($ordShipName=='' && $ordShipAddress=='' && $ordShipAddress2=='' && $ordShipCity=='') $ordShipCountry='';
  2496. // Blake 12/14/06
  2497. // fedex at standart price
  2498. $shipMethod=str_replace(' At Standard Price','',$shipMethod);
  2499. // end fedex
  2500. // Stripslashes from the fields
  2501. $ordName = stripslashes($ordName);
  2502. $ordAddress = stripslashes($ordAddress);
  2503. $ordAddress2 = stripslashes($ordAddress2);
  2504. $ordShipName = stripslashes($ordShipName);
  2505. $ordShipAddress = stripslashes($ordShipAddress);
  2506. $ordShipAddress2 = stripslashes($ordShipAddress2);
  2507. if($orderid==""){
  2508. $sSQL = "INSERT INTO orders (ordSessionID,ordName,ordAddress,ordAddress2,ordCity,ordState,ordZip,ordCountry,ordEmail,ordPhone,ordShipName,ordShipAddress,ordShipAddress2,ordShipCity,ordShipState,ordShipZip,ordShipCountry,ordPayProvider,ordAuthNumber,ordShipping,ordStateTax,ordCountryTax,ordHSTTax,ordHandling,ordShipType,ordTotal,ordDate,ordStatus,ordStatusDate,ordComLoc,ordIP,ordAffiliate,ordExtra1,ordExtra2,ordDiscount,ordDiscountText,ordCoupon,ordAddInfo,ordPoApo,ordShipPoApo,ordHowFound,ord_cert_amt,ordEID) VALUES (";
  2509. $sSQL .= "'" . mysql_real_escape_string($thesessionid) . "',";
  2510. $sSQL .= "'" . mysql_real_escape_string($ordName) . "',";
  2511. $sSQL .= "'" . mysql_real_escape_string($ordAddress) . "',";
  2512. $sSQL .= "'" . mysql_real_escape_string($ordAddress2) . "',";
  2513. $sSQL .= "'" . mysql_real_escape_string($ordCity) . "',";
  2514. $sSQL .= "'" . mysql_real_escape_string($ordState) . "',";
  2515. $sSQL .= "'" . mysql_real_escape_string($ordZip) . "',";
  2516. $sSQL .= "'" . mysql_real_escape_string($ordCountry) . "',";
  2517. $sSQL .= "'" . mysql_real_escape_string($ordEmail) . "',";
  2518. $sSQL .= "'" . mysql_real_escape_string($ordPhone) . "',";
  2519. $sSQL .= "'" . mysql_real_escape_string($ordShipName) . "',";
  2520. $sSQL .= "'" . mysql_real_escape_string($ordShipAddress) . "',";
  2521. $sSQL .= "'" . mysql_real_escape_string($ordShipAddress2) . "',";
  2522. $sSQL .= "'" . mysql_real_escape_string($ordShipCity) . "',";
  2523. $sSQL .= "'" . mysql_real_escape_string($ordShipState) . "',";
  2524. $sSQL .= "'" . mysql_real_escape_string($ordShipZip) . "',";
  2525. $sSQL .= "'" . mysql_real_escape_string($ordShipCountry) . "',";
  2526. $sSQL .= "'" . mysql_real_escape_string($ordPayProvider) . "',";
  2527. $sSQL .= "'',";
  2528. $sSQL .= "'" . mysql_real_escape_string($shipping) . "',";
  2529. if($usehst){
  2530. $sSQL .= "0,";
  2531. $sSQL .= "0,";
  2532. $sSQL .= ($stateTax + $countryTax) . ",";
  2533. }else{
  2534. $sSQL .= "'" . mysql_real_escape_string($stateTax) . "',";
  2535. $sSQL .= "'" . mysql_real_escape_string($countryTax) . "',";
  2536. $sSQL .= "0,";
  2537. }
  2538. $sSQL .= "'" . mysql_real_escape_string($handling) . "',";
  2539. $sSQL .= "'" . mysql_real_escape_string($shipMethod) . "',";
  2540. $sSQL .= "'" . mysql_real_escape_string($totalgoods) . "',";
  2541. $sSQL .= "'" . date("Y-m-d H:i:s", time() + ($dateadjust*60*60)) . "',";
  2542. $sSQL .= "2,"; // Status
  2543. $sSQL .= "'" . date("Y-m-d H:i:s", time() + ($dateadjust*60*60)) . "',";
  2544. $sSQL .= "'" . $ordComLoc . "',";
  2545. $sSQL .= "'" . @$_SERVER["REMOTE_ADDR"] . "',";
  2546. $sSQL .= "'" . mysql_real_escape_string($ordAffiliate) . "',";
  2547. $sSQL .= "'" . mysql_real_escape_string($ordExtra1) . "',";
  2548. $sSQL .= "'" . mysql_real_escape_string($ordExtra2) . "',";
  2549. $sSQL .= "'" . mysql_real_escape_string($totaldiscounts+$freeshipamnt) . "',";
  2550. $sSQL .= "'" . mysql_real_escape_string(trim(substr($cpnmessage,0,255))) . "',";
  2551. $sSQL .= "'" . mysql_real_escape_string(trim($cpnIDs)) . "',";
  2552. $sSQL .= "'" . mysql_real_escape_string($ordAddInfo) . "',";
  2553. $sSQL .= "'" . $ordPoApo . "',";
  2554. $sSQL .= "'" . $ordShipPoApo . "',";
  2555. $sSQL .= "'" . $ordHowFound . "',";
  2556. $sSQL .= "'" . $pendingamt . "',";
  2557. $sSQL .= "'" . $_SESSION['custID'] . "')";
  2558. mysql_query($sSQL) or print(mysql_error());
  2559. $orderid = mysql_insert_id();
  2560. if(!setNewLocation( 2 , $orderid )) print("Unable to record new location");
  2561. }else{
  2562. $sSQL = "UPDATE orders SET ";
  2563. $sSQL .= "ordSessionID='" . mysql_real_escape_string($thesessionid) . "',";
  2564. $sSQL .= "ordName='" . mysql_real_escape_string($ordName) . "',";
  2565. $sSQL .= "ordAddress='" . mysql_real_escape_string($ordAddress) . "',";
  2566. $sSQL .= "ordAddress2='" . mysql_real_escape_string($ordAddress2) . "',";
  2567. $sSQL .= "ordCity='" . mysql_real_escape_string($ordCity) . "',";
  2568. $sSQL .= "ordState='" . mysql_real_escape_string($ordState) . "',";
  2569. $sSQL .= "ordZip='" . mysql_real_escape_string($ordZip) . "',";
  2570. $sSQL .= "ordCountry='" . mysql_real_escape_string($ordCountry) . "',";
  2571. $sSQL .= "ordEmail='" . mysql_real_escape_string($ordEmail) . "',";
  2572. $sSQL .= "ordPhone='" . mysql_real_escape_string($ordPhone) . "',";
  2573. $sSQL .= "ordShipName='" . mysql_real_escape_string($ordShipName) . "',";
  2574. $sSQL .= "ordShipAddress='" . mysql_real_escape_string($ordShipAddress) . "',";
  2575. $sSQL .= "ordShipAddress2='" . mysql_real_escape_string($ordShipAddress2) . "',";
  2576. $sSQL .= "ordShipCity='" . mysql_real_escape_string($ordShipCity) . "',";
  2577. $sSQL .= "ordShipState='" . mysql_real_escape_string($ordShipState) . "',";
  2578. $sSQL .= "ordShipZip='" . mysql_real_escape_string($ordShipZip) . "',";
  2579. $sSQL .= "ordShipCountry='" . mysql_real_escape_string($ordShipCountry) . "',";
  2580. $sSQL .= "ordPayProvider='" . mysql_real_escape_string($ordPayProvider) . "',";
  2581. $sSQL .= "ordAuthNumber='',"; // Not yet authorized
  2582. $sSQL .= "ordShipping='" . $shipping . "',";
  2583. if($usehst){
  2584. $sSQL .= "ordStateTax=0,";
  2585. $sSQL .= "ordCountryTax=0,";
  2586. $sSQL .= "ordHSTTax=" . ($stateTax + $countryTax) . ",";
  2587. }else{
  2588. $sSQL .= "ordStateTax='" . $stateTax . "',";
  2589. $sSQL .= "ordCountryTax='" . $countryTax . "',";
  2590. $sSQL .= "ordHSTTax=0,";
  2591. }
  2592. $sSQL .= "ordHandling='" . $handling . "',";
  2593. $sSQL .= "ordShipType='" . $shipMethod . "',";
  2594. $sSQL .= "ordTotal='" . $totalgoods . "',";
  2595. $sSQL .= "ordDate='" . date("Y-m-d H:i:s", time() + ($dateadjust*60*60)) . "',";
  2596. $sSQL .= "ordComLoc=" . $ordComLoc . ",";
  2597. $sSQL .= "ordIP='" . @$_SERVER["REMOTE_ADDR"] . "',";
  2598. $sSQL .= "ordAffiliate='" . mysql_real_escape_string($ordAffiliate) . "',";
  2599. $sSQL .= "ordExtra1='" . mysql_real_escape_string($ordExtra1) . "',";
  2600. $sSQL .= "ordExtra2='" . mysql_real_escape_string($ordExtra2) . "',";
  2601. $sSQL .= "ordDiscount='" . ($totaldiscounts + $freeshipamnt) . "',";
  2602. $sSQL .= "ordDiscountText='" . mysql_real_escape_string(trim(substr($cpnmessage,0,255))) . "',";
  2603. $sSQL .= "ordCoupon='" . mysql_real_escape_string(trim($cpnIDs)) . "',";
  2604. $sSQL .= "ord_cert_amt='" . mysql_real_escape_string($pendingamt) . "',";
  2605. $sSQL .= "ordAddInfo='" . mysql_real_escape_string($ordAddInfo) . "'";
  2606. $sSQL .= " WHERE ordID='" . $orderid . "'";
  2607. mysql_query($sSQL) or print(mysql_error());
  2608. }
  2609. //HCS - DRE 03/02/05 Gift Cert Mod START
  2610. if($gcdiscount) {
  2611. $strsql = "UPDATE certificates SET pend_order_id=".$orderid.", pend_order_amt=".$pendingamt." WHERE cert_code ='".$cert_code."'";
  2612. mysql_query($strsql);
  2613. }
  2614. //HCS - DRE 03/02/05 Gift Cert Mod STOP
  2615. $sSQL="UPDATE cart SET cartOrderID=". $orderid . " WHERE cartCompleted=0 AND cartSessionID='" . mysql_real_escape_string($thesessionid) . "'";
  2616. mysql_query($sSQL) or print(mysql_error());
  2617. $descstr="";
  2618. $addcomma = "";
  2619. $sSQL="SELECT cartQuantity,cartProdName FROM cart WHERE cartOrderID=" . $orderid . " AND cartCompleted=0";
  2620. $result = mysql_query($sSQL) or print(mysql_error());
  2621. while($rs=mysql_fetch_assoc($result)){
  2622. $descstr .= $addcomma . $rs["cartQuantity"] . " " . $rs["cartProdName"];
  2623. $addcomma = ", ";
  2624. }
  2625. mysql_free_result($result);
  2626. $descstr = str_replace('"','',$descstr);
  2627. if(@$_POST["remember"]=="1")
  2628. print "<script src='/admin/savecookie.php?id1=" . $orderid . "&id2=" . trim($thesessionid) . "'></script>";
  2629. }
  2630. }else{
  2631. $success=FALSE;
  2632. }
  2633. // shipping selection start
  2634. //$checkIntOptions=TRUE;
  2635. $verifyaddress=FALSE;
  2636. if($_POST['verifydone']!="yes") $verifyaddress=TRUE;
  2637. if($checkIntOptions && $success || ($alternaterates && ! $success) || $verifyaddress){
  2638. $hassuccess = $success;
  2639. $success = FALSE; // So not to print the order totals.
  2640. ?>
  2641. <?
  2642. // splits the cart page into different funnels
  2643. $google_tracker="/cart/address_verification.php";
  2644. // end
  2645. ?>
  2646. <form method="post" name="shipform" id="shipform" action="cart.php" >
  2647. <input name="mode" id="mode" type="hidden" value="go" />
  2648. <input name="verifydone" type="hidden" value="yes" />
  2649. <?php
  2650. //writehiddenvar('mode', 'go');
  2651. writehiddenvar('sessionid', $thesessionid);
  2652. writehiddenvar('PARTNER', $ordAffiliate);
  2653. writehiddenvar('name', $ordName);
  2654. writehiddenvar('poapo', $ordPoApo);
  2655. writehiddenvar('email', $ordEmail);
  2656. writehiddenvar('address', $ordAddress);
  2657. writehiddenvar('address2', $ordAddress2);
  2658. writehiddenvar('city', $ordCity);
  2659. writehiddenvar('state', $ordState);
  2660. writehiddenvar('country', $ordCountry);
  2661. writehiddenvar('zip', $ordZip);
  2662. writehiddenvar('phone', $ordPhone);
  2663. writehiddenvar('sname', $ordShipName);
  2664. writehiddenvar('spoapo', $ordShipPoApo);
  2665. writehiddenvar('saddress', $ordShipAddress);
  2666. writehiddenvar('saddress2', $ordShipAddress2);
  2667. writehiddenvar('scity', $ordShipCity);
  2668. writehiddenvar('sstate', $ordShipState);
  2669. writehiddenvar('scountry', $ordShipCountry);
  2670. writehiddenvar('szip', $ordShipZip);
  2671. writehiddenvar('ordAddInfo', $ordAddInfo);
  2672. writehiddenvar('ordextra1', $ordExtra1);
  2673. writehiddenvar('ordextra2', $ordExtra2);
  2674. writehiddenvar('cpncode', $cpncode);
  2675. writehiddenvar('howfound', $ordHowFound);
  2676. writehiddenvar('payprovider', $ordPayProvider);
  2677. writehiddenvar('token', $token);
  2678. writehiddenvar('payerid', $payerid);
  2679. writehiddenvar('wantinsurance', $wantinsurance);
  2680. writehiddenvar('commercialloc', $commercialloc);
  2681. writehiddenvar('cert_code', $cert_code);
  2682. writehiddenvar('remember', @$_POST["remember"]);
  2683. include(DOCROOT.'includes/fedex/fedexdc.php');
  2684. ?>
  2685. <input name="editwhat" id="editwhat" type="hidden" value="billing" />
  2686. <div id="cart_nav"><img src="/lib/images/new_images/subnav_gray_13.gif" alt="View Order"><img src="/lib/images/new_images/subnav_green_15.gif" alt="Customer Info"><img src="/lib/images/new_images/subnav_gray_17.gif" alt="Final Review"><img src="/lib/images/new_images/subnav_gray_19.gif" alt="Confirmation"><img src="/lib/images/new_images/subnav_gray_21.gif" alt="View Receipt"></div>
  2687. <div style="margin:0px 10p;">
  2688. <h2>Please Verify Your Information</h2>
  2689. <div>
  2690. <div style="border:#B1B1B1 solid 1px; width:430px; float:left; line-height:18px;padding:10px;">
  2691. <div>
  2692. <span style=" font-weight:normal;text-align:right; margin-left:100px;float:right"><a href="#" onclick="$('mode').value='edit';$('shipform').submit();">edit</a></span>
  2693. <h3 style="width:300px">Billing Address</h3>
  2694. <strong>Full Name:</strong> <?=$ordName?><br />
  2695. <strong>Email: </strong> <?=$ordEmail?> <br />
  2696. <strong>Phone:</strong> <?=$ordPhone?><br />
  2697. <? if($ordPoApo=="1") echo '<strong>APO/PO Box:</strong> yes<br />';?>
  2698. <?
  2699. $showAddVer=FALSE;
  2700. if($ordShipAddress=="" && $ordCountry=="United States of America" && $ordPoApo!="1") $showAddVer=TRUE;
  2701. if($showAddVer) {
  2702. // create new FedExDC object
  2703. $fed = new FedExDC(NULL, NULL);
  2704. $aFedData = array(
  2705. 11=>$ordName,
  2706. 13=>$ordAddress, // Spelled wrong to test. Should be "Stuart St"
  2707. 14=>$ordAddress2,
  2708. 15=>$ordCity,
  2709. 16=>$ordState,
  2710. 17=>$ordZip,
  2711. 1600=>'', // Urbanization Code? Used for PR
  2712. 1601=>3 // How many retuned items
  2713. );
  2714. $aVData = $fed->address_validate($aFedData);
  2715. //echo "BUFF ". $fed->sBuf;
  2716. if ($error = $fed->getError()) {
  2717. $check_error= split(': ',$error);
  2718. }
  2719. $returnedAddress='';
  2720. $checksame=0;
  2721. $returnedTotal=0;
  2722. for ($i=1; $i<=$aVData['1604']; $i++) {
  2723. foreach (array(13,14,15,16,17) as $key){
  2724. if (isset($aVData[$key.'-'.$i])){
  2725. if($key==13){
  2726. $returnedTotal++;
  2727. $returnedAddress.= $aVData[$key.'-'.$i]."<br />\n";
  2728. $addressReturn=$aVData[$key.'-'.$i];
  2729. if($aVData[$key.'-'.$i]==$ordAddress) $checksame++;
  2730. }elseif($key==14){
  2731. $returnedTotal++;
  2732. $returnedAddress.= $aVData[$key.'-'.$i]."<br />\n";
  2733. $address2Return=$aVData[$key.'-'.$i];
  2734. if($aVData[$key.'-'.$i]==$ordAddress2 || empty($ordAddress2)) {echo 'yes';$checksame++;}
  2735. } elseif($key==17){
  2736. $returnedTotal++;
  2737. $returnedAddress.= $aVData[$key.'-'.$i]."<br />\n";
  2738. $zipReturn=$aVData[$key.'-'.$i];
  2739. if($aVData[$key.'-'.$i]==$ordZip) $checksame++;
  2740. } elseif($key==15) {
  2741. $returnedTotal++;
  2742. $returnedAddress.= $aVData[$key.'-'.$i].", ";
  2743. $cityReturn=$aVData[$key.'-'.$i];
  2744. if($aVData[$key.'-'.$i]==$ordCity) $checksame++;
  2745. } elseif($key==16) {
  2746. $returnedTotal++;
  2747. $returnedAddress.= $aVData[$key.'-'.$i]." ";
  2748. $stateReturn=$aVData[$key.'-'.$i];
  2749. if($aVData[$key.'-'.$i]==$ordState) $checksame++;
  2750. }
  2751. }
  2752. }
  2753. }
  2754. ?>
  2755. <? if($checksame!=$returnedTotal || !empty($check_error)){?>
  2756. <div style="float:right; width:200px; border-left: dashed #B1B1B1 1px; padding-left:10px;">
  2757. <? if(!empty($check_error[1])) echo '<span style="color:#FF0000;">'.$check_error[1].'</span>';
  2758. else {?>
  2759. <div style="font-weight:bold;"><input name="addressselect" type="radio" value="1" onclick="$('address').value='<?=$addressReturn?>';$('zip').value='<?=$zipReturn?>';$('address2').value='<?=$address2Return?>';$('city').value='<?=$cityReturn?>';$('state').value='<?=$stateReturn?>';" />
  2760. Use Verified Address</div>
  2761. <?=$returnedAddress?>
  2762. <?=$ordCountry?>
  2763. <? } ?>
  2764. </div>
  2765. <? } ?>
  2766. <? } ?>
  2767. <div style="width:200px;">
  2768. <? if($showAddVer && $checksame!=$returnedTotal) { ?>
  2769. <input name="addressselect" type="radio" value="0" checked="checked" onclick="$('address').value='<?=$ordAddress?>';$('zip').value='<?=$ordZip?>';$('address2').value='<?=$ordAddress2?>';$('city').value='<?=$ordCity?>';$('state').value='<?=$ordState?>';" />
  2770. <? }?>
  2771. <strong>Address:</strong><br /> <?=$ordAddress?><br />
  2772. <? if($ordAddress2!="") echo $ordAddress2.'<br />';?>
  2773. <?=$ordCity?>, <?=$ordState?> <?=$ordZip?><br />
  2774. <?=$ordCountry?>
  2775. </div>
  2776. </div>
  2777. </div>
  2778. <div style="border:#B1B1B1 solid 1px; float:right; width:430px; margin-right:2px;line-height:18px;">
  2779. <div style="padding:8px;">
  2780. <span style=" font-weight:normal;text-align:right; float:right; width:30px;"><a href="#" onclick="$('mode').value='edit';$('editwhat').value='shipping';$('shipform').submit();">edit</a></span>
  2781. <h3 width:300px;">Shipping Address<? if(empty($ordShipAddress)) echo ' (same as billing)';?></h3>
  2782. <? if(!empty($ordShipAddress)) {
  2783. $showShipAddVer=FALSE;
  2784. $checkshipsame=0;
  2785. $returnedShipTotal=0;
  2786. if($ordShipCountry=="United States of America" && $ordShipPoApo!="1" ) $showShipAddVer=TRUE;
  2787. if($showShipAddVer) {
  2788. // create new FedExDC object
  2789. $fed = new FedExDC(NULL, NULL);
  2790. $aFedData = array(
  2791. 11=>$ordShipName,
  2792. 13=>$ordShipAddress, // Spelled wrong to test. Should be "Stuart St"
  2793. 14=>$ordShipAddress2,
  2794. 15=>$ordShipCity,
  2795. 16=>$ordShipState,
  2796. 17=>$ordShipZip,
  2797. 1600=>'', // Urbanization Code? Used for PR
  2798. 1601=>3 // How many retuned items
  2799. );
  2800. $aVData = $fed->address_validate($aFedData);
  2801. //echo "BUFF ". $fed->sBuf;
  2802. if ($error = $fed->getError()) {
  2803. $scheck_error= split(': ',$error);
  2804. }
  2805. $returnedShipAddress='';
  2806. for ($i=1; $i<=$aVData['1604']; $i++) {
  2807. foreach (array(13,14,15,16,17) as $key){
  2808. if (isset($aVData[$key.'-'.$i])){
  2809. if($key==13){
  2810. $returnedShipTotal++;
  2811. $returnedShipAddress.= $aVData[$key.'-'.$i]."<br />\n";
  2812. $addressShipReturn=$aVData[$key.'-'.$i];
  2813. if($aVData[$key.'-'.$i]==$ordShipAddress) $checkshipsame++;
  2814. }elseif($key==14){
  2815. $returnedShipTotal++;
  2816. $returnedShipAddress.= $aVData[$key.'-'.$i]."<br />\n";
  2817. $address2ShipReturn=$aVData[$key.'-'.$i];
  2818. if($aVData[$key.'-'.$i]==$ordShipAddress2) $checkshipsame++;
  2819. } elseif($key==17){
  2820. $returnedShipTotal++;
  2821. $returnedShipAddress.= $aVData[$key.'-'.$i]."<br />\n";
  2822. $zipShipReturn=$aVData[$key.'-'.$i];
  2823. if($aVData[$key.'-'.$i]==$ordShipZip) $checkshipsame++;
  2824. } elseif($key==15) {
  2825. $returnedShipTotal++;
  2826. $returnedShipAddress.= $aVData[$key.'-'.$i].", ";
  2827. $cityShipReturn=$aVData[$key.'-'.$i];
  2828. if($aVData[$key.'-'.$i]==$ordShipCity) $checkshipsame++;
  2829. } elseif($key==16) {
  2830. $returnedShipTotal++;
  2831. $returnedShipAddress.= $aVData[$key.'-'.$i]." ";
  2832. $stateShipReturn=$aVData[$key.'-'.$i];
  2833. if($aVData[$key.'-'.$i]==$ordShipState) $checkshipsame++;
  2834. }
  2835. }
  2836. }
  2837. }
  2838. ?>
  2839. <? if($checkshipsame!=$returnedShipTotal || !empty($scheck_error)){?>
  2840. <div style="float:right; width:200px; border-left: dashed #B1B1B1 1px; padding-left:10px;">
  2841. <? if(!empty($scheck_error[1])) echo '<span style="color:#FF0000;">'.$scheck_error[1].'</span>';
  2842. else {?>
  2843. <div style="font-weight:bold;"><input name="addressshipselect" type="radio" value="1" onclick="$('saddress').value='<?=$addressShipReturn?>';$('szip').value='<?=$zipShipReturn?>';$('saddress2').value='<?=$address2ShipReturn?>';$('scity').value='<?=$cityShipReturn?>';$('sstate').value='<?=$stateShipReturn?>';" />
  2844. Use Verified Address</div>
  2845. <?=$returnedShipAddress?>
  2846. <?=$ordShipCountry?>
  2847. <? } ?>
  2848. </div>
  2849. <? } ?>
  2850. <? } ?>
  2851. <div style="width:200px;">
  2852. <? if($showShipAddVer && $checkshipsame!=$returnedShipTotal) { ?>
  2853. <input name="addressshipselect" type="radio" value="0" checked="checked" onclick="$('saddress').value='<?=$ordShipAddress?>';$('szip').value='<?=$ordShipZip?>';$('saddress2').value='<?=$ordShipAddress2?>';$('scity').value='<?=$ordShipCity?>';$('sstate').value='<?=$ordShipState?>';" />
  2854. <? }?>
  2855. <? if($ordShipPoApo=="1") echo '<strong>APO/PO Box:</strong> yes<br />';?>
  2856. <strong>Shipping Address:</strong><br /> <?=$ordShipAddress?><br />
  2857. <? if($ordShipAddress2!="") echo $ordShipAddress2.'<br />';?>
  2858. <?=$ordShipCity?>, <?=$ordShipState?> <?=$ordShipZip?><br />
  2859. <?=$ordShipCountry?>
  2860. </div>
  2861. <? } ?>
  2862. </div>
  2863. </div>
  2864. <div style="clear:both;">&nbsp;</div>
  2865. </div>
  2866. </div>
  2867. <?php
  2868. //showarray($_SESSION);
  2869. ?>
  2870. <table class="cobtbl" width="<?php print $maintablewidth?>" border="0" bordercolor="#B1B1B1" cellspacing="1" cellpadding="3" bgcolor="#B1B1B1">
  2871. <tr>
  2872. <td height="34" align="center" class="cobhl" bgcolor="#EBEBEB"><strong><?php print $xxShpOpt?></strong></td>
  2873. </tr>
  2874. <tr>
  2875. <td height="34" align="center" class="cobll" bgcolor="#FFFFFF">
  2876. <?php if($hassuccess){ ?>
  2877. <table width="100%" cellspacing="0" cellpadding="0" border="0" bgcolor="#FFFFFF">
  2878. <tr>
  2879. <td height="34" align="right" width="50%" class="cobll" bgcolor="#FFFFFF"><?php if($shipType==4) print '<img src="/lib/images/LOGO_S.gif" alt="UPS" />&nbsp;&nbsp;'; else print "&nbsp;"; ?></td>
  2880. <td height="34" align="center" class="cobll" bgcolor="#FFFFFF"><?php
  2881. calculateshippingdiscounts(false);
  2882. $show_fedex=TRUE;
  2883. if(empty($ordShipAddress)){
  2884. if($ordPoApo=="1" || strstr('AA,AE,AP',$ordState)) $show_fedex=FALSE;
  2885. } else {
  2886. if($ordShipPoApo=="1" || strstr('AA,AE,AP',$ordShipState)) $show_fedex=FALSE;
  2887. }
  2888. print "<select name='shipping' size='1'><option value=''".((empty($_SESSION['shp_method']))?' selected="selected"':'').">Please Select...</option>";
  2889. // Blake 12/14/06
  2890. // standard shipping for dropshiporders
  2891. if ($_SESSION['hasdropship']) $numshipoptions=1;
  2892. //if($_SESSION['hasdropship'] && $numshipoptions==3)$numshipoptions=$numshipoptions-2;
  2893. //else if($_SESSION['hasdropship'] && $numshipoptions==2)$numshipoptions--;
  2894. // end
  2895. if($shipType==2 || $shipType==5){
  2896. if(is_array($allzones)){
  2897. $ship='2,5';
  2898. for($index3=0; $index3 < $numshipoptions; $index3++){
  2899. $type[$index3]= $intShipping[$index3][0];
  2900. if(!$show_fedex && $intShipping[$index3][0]!="FedEx Express" || $show_fedex) {
  2901. print "<option value='" . $intShipping[$index3][2] . "|" . (($pzFSA & pow(2, $index3))!=0?"1":"0") . "|" . $intShipping[$index3][0] . "' ".($intShipping[$index3][0]==$_SESSION['shp_method'] ? " selected" : "").">";
  2902. print ($freeshippingapplied && ($pzFSA & pow(2, $index3))!=0 ? $xxFree . " " . $intShipping[$index3][0] : $intShipping[$index3][0] . " " . FormatEuroCurrency($intShipping[$index3][2])) . '</option>';
  2903. }
  2904. }
  2905. }
  2906. }else{
  2907. for($indexmso=0; $indexmso<$maxshipoptions; $indexmso++){
  2908. $shipRow = $intShipping[$indexmso];
  2909. if($shipType==3){
  2910. if($iTotItems==$shipRow[3]){
  2911. for($index2=0;$index2<$numuspsmeths;$index2++){
  2912. if(trim($shipRow[0]) == trim($uspsmethods[$index2][0])){
  2913. print "<option value='" . $shipRow[2] . "|". trim($uspsmethods[$index2][1]) ."|" . trim($uspsmethods[$index2][2]) . "'" . (freeshippingapplied && $uspsmethods[$index2][1]==1 ? " selected>" : ">");
  2914. print trim($uspsmethods[$index2][2]) . " (" . $shipRow[1] . ") " . ($freeshippingapplied && $uspsmethods[$index2][1]==1 ? $xxFree : FormatEuroCurrency($shipRow[2]));
  2915. print "</option>";
  2916. }
  2917. }
  2918. }
  2919. }elseif($shipType==4 || $shipType==6){
  2920. if($shipRow[3]){
  2921. print "<option value='" . $shipRow[2] . "|". $shipRow[4] ."|" . $shipRow[0] . "'" . ($freeshippingapplied && $shipRow[4]==1 ? " selected>" : ">") . $shipRow[0] . " ";
  2922. if(trim($shipRow[1]) != "") print "(" . $xxGuar . " " . $shipRow[1] . ") ";
  2923. print ($freeshippingapplied && $shipRow[4]==1 ? $xxFree : FormatEuroCurrency($shipRow[2]));
  2924. print "</option>";
  2925. }
  2926. }
  2927. }
  2928. }
  2929. if(@$willpickuptext != ""){
  2930. if(@$willpickupcost=="") $willpickupcost=0;
  2931. print '<option value="' . $willpickupcost . "|1|" . str_replace('"','&quot;',$willpickuptext) . '">';
  2932. print $willpickuptext . " " . FormatEuroCurrency($willpickupcost) . "</option>";
  2933. }
  2934. print "</select>";
  2935. ?></td>
  2936. <td height="34" align="left" width="50%" class="cobll" bgcolor="#FFFFFF">&nbsp;</td>
  2937. </tr>
  2938. </table>
  2939. <?php }else{
  2940. print '<input type="hidden" name="shipping" value="">' . $errormsg;
  2941. } ?>
  2942. </td>
  2943. </tr>
  2944. <?php if(@$alternateratesups != "" || @$alternateratesusps != "" || @$alternateratesweightbased != "" || @$alternateratescanadapost != ""){ ?>
  2945. <tr>
  2946. <td height="34" align="center" class="cobhl" bgcolor="#EBEBEB"><strong>Or select an alternate shipping carrier to compare rates.</strong></td>
  2947. </tr>
  2948. <tr>
  2949. <td height="34" align="center" class="cobll" bgcolor="#FFFFFF">
  2950. <select name="altrates" size="1" onchange="document.forms.shipform.shipping.value='';document.forms.shipform.shipping.disabled=true;document.forms.shipform.submit();"><?php
  2951. if(@$alternateratesups != "" || $origShipType==4) print '<option value="4"' . ($shipType==4 ? " selected" : "") . ">" . @$alternateratesups . '</option>';
  2952. if(@$alternateratesusps != "" || $origShipType==3) print '<option value="3"' . ($shipType==3 ? " selected" : "") . ">" . @$alternateratesusps . '</option>';
  2953. if(@$alternateratesweightbased != "" || $origShipType==2) print '<option value="2"' . ($shipType==2 ? " selected" : "") . ">" . @$alternateratesweightbased . '</option>';
  2954. if(@$alternateratescanadapost != "" || $origShipType==6) print '<option value="6"' . ($shipType==6 ? " selected" : "") . ">" . @$alternateratescanadapost . '</option>';
  2955. ?></select>
  2956. </td>
  2957. </tr>
  2958. <?php } ?>
  2959. <tr>
  2960. </table>
  2961. <div style="text-align:center"><input type="image" value="Checkout" border="0" src="/lib/images/final_review.gif" /></div>
  2962. <?php if($shipType==4){ ?>
  2963. <p align="center">&nbsp;<br /><font size="1">UPS&reg;, UPS & Shield Design&reg; and UNITED PARCEL SERVICE&reg;
  2964. are<br />registered trademarks of United Parcel Service of America, Inc.</font></p>
  2965. <?php } ?>
  2966. </form>
  2967. <?php
  2968. //end shipping selection
  2969. }elseif(! $success){
  2970. ?>
  2971. <table border="0" cellspacing="<?php print $maintablespacing?>" cellpadding="<?php print $maintablepadding?>" width="<?php print $maintablewidth?>" bgcolor="<?php print $maintablebg?>" align="center">
  2972. <tr>
  2973. <td width="100%">
  2974. <table width="<?php print $innertablewidth?>" border="0" cellspacing="<?php print $innertablespacing?>" cellpadding="<?php print $innertablepadding?>" bgcolor="<?php print $innertablebg?>">
  2975. <tr>
  2976. <td align="center"><p>&nbsp;</p><p><strong><?php print $xxSryErr?></strong></p><p><strong><?php print "<br />" . $errormsg ?></strong></p><p>&nbsp;</p></td>
  2977. </tr>
  2978. </table>
  2979. </td>
  2980. </tr>
  2981. </table>
  2982. <?php
  2983. }elseif($ordPayProvider != ""){
  2984. $blockuser=checkuserblock($ordPayProvider);
  2985. if($blockuser){
  2986. $orderid = 0;
  2987. $thesessionid = "";
  2988. }else{
  2989. $sSQL = "SELECT payProvDemo,payProvData1,payProvData2,payProvMethod FROM payprovider WHERE payProvID='" . mysql_real_escape_string($ordPayProvider) . "'";
  2990. $result = mysql_query($sSQL) or print(mysql_error());
  2991. $rs = mysql_fetch_array($result);
  2992. $demomode = ((int)$rs["payProvDemo"]==1);
  2993. $data1 = trim($rs["payProvData1"]);
  2994. $data2 = trim($rs["payProvData2"]);
  2995. $ppmethod = (int)$rs["payProvMethod"];
  2996. mysql_free_result($result);
  2997. }
  2998. if(@$pathtossl != ""){
  2999. if(substr($pathtossl,-1) != "/") $pathtossl .= "/";
  3000. $storeurl = $pathtossl;
  3001. }
  3002. if($grandtotal > 0 && $ordPayProvider=="1"){ // PayPal
  3003. ?>
  3004. <form method="post" action="https://www.<?php if($demomode) print 'sandbox.'?>paypal.com/cgi-bin/webscr">
  3005. <input type="hidden" name="cmd" value="_ext-enter" />
  3006. <input type="hidden" name="redirect_cmd" value="_xclick" />
  3007. <input type="hidden" name="rm" value="2" />
  3008. <input type="hidden" name="business" value="<?php print $data1?>" />
  3009. <input type="hidden" name="return" value="<?php print $storeurl?>thanks.php" />
  3010. <input type="hidden" name="notify_url" value="/admin/ppconfirm.php" />
  3011. <input type="hidden" name="item_name" value="<?php print substr($descstr,0,127)?>" />
  3012. <input type="hidden" name="custom" value="<?php print $orderid?>" />
  3013. <?php if(@$splitpaypalshipping){
  3014. writehiddenvar('shipping', number_format(round(($shipping + $handling) - $freeshipamnt, 2),2,'.',''));
  3015. writehiddenvar('amount', number_format(round(($totalgoods + $stateTax + $countryTax) - $totaldiscounts, 2),2,'.',''));
  3016. }else{
  3017. writehiddenvar('amount', number_format($grandtotal,2,'.',''));
  3018. } ?>
  3019. <input type="hidden" name="currency_code" value="<?php print $countryCurrency?>" />
  3020. <input type="hidden" name="bn" value="ecommercetemplates.php.ecommplus" />
  3021. <?php $thename = trim(@$_POST["name"]);
  3022. if($thename != ""){
  3023. if(strstr($thename," ")){
  3024. $namearr = split(" ",$thename,2);
  3025. print '<input type="hidden" name="first_name" value="' . $namearr[0] . "\" />\n";
  3026. print '<input type="hidden" name="last_name" value="' . $namearr[1] . "\" />\n";
  3027. }else
  3028. print '<input type="hidden" name="last_name" value="' . $thename . "\" />\n";
  3029. }
  3030. ?>
  3031. <input type="hidden" name="address1" value="<?php print @$_POST["address"]?>" />
  3032. <input type="hidden" name="address2" value="<?php print @$_POST["address2"]?>" />
  3033. <input type="hidden" name="city" value="<?php print @$_POST["city"]?>" />
  3034. <?php if($countryID==1 && $stateAbbrev != ""){ ?>
  3035. <input type="hidden" name="state" value="<?php print $stateAbbrev?>" />
  3036. <?php }else{ ?>
  3037. <input type="hidden" name="state" value="<?php if(trim(@$_POST["state"]) != "") print unstripslashes(@$_POST["state"]); else print unstripslashes(@$_POST["state2"]);?>" />
  3038. <?php } ?>
  3039. <input type="hidden" name="country" value="<?php print $countryCode?>" />
  3040. <input type="hidden" name="email" value="<?php print @$_POST["email"]?>" />
  3041. <input type="hidden" name="zip" value="<?php print @$_POST["zip"]?>" />
  3042. <input type="hidden" name="cancel_return" value="<?php print $storeurl?>sorry.php" />
  3043. <?php }elseif($grandtotal > 0 && $ordPayProvider=="2"){ // 2Checkout
  3044. $courl='https://www.2checkout.com/cgi-bin/sbuyers/cartpurchase.2c';
  3045. if(is_numeric($data1))
  3046. if($data1>200000 || @$use2checkoutv2==TRUE) $courl='https://www2.2checkout.com/2co/buyer/purchase';
  3047. ?>
  3048. <form method="post" action="<?php print $courl?>">
  3049. <input type="hidden" name="cart_order_id" value="<?php print $orderid?>" />
  3050. <input type="hidden" name="sid" value="<?php print $data1?>" />
  3051. <input type="hidden" name="total" value="<?php print $grandtotal?>" />
  3052. <input type="hidden" name="card_holder_name" value="<?php print @$_POST["name"]?>" />
  3053. <input type="hidden" name="street_address" value="<?php print @$_POST["address"] . (trim(@$_POST["address2"])!='' ? ', ' . unstripslashes(@$_POST["address2"]) : '')?>" />
  3054. <?php if($countryID==1 || $countryID==2){ ?>
  3055. <input type="hidden" name="city" value="<?php print @$_POST["city"]?>" />
  3056. <input type="hidden" name="state" value="<?php if(trim(@$_POST["state"]) != "") print unstripslashes(@$_POST["state"]); else print unstripslashes(@$_POST["state2"]);?>" />
  3057. <?php }else{
  3058. if(trim(@$_POST["state"]) != "") $thestate = unstripslashes(@$_POST["state"]); else $thestate = unstripslashes(@$_POST["state2"]); ?>
  3059. <input type="hidden" name="city" value="<?php print @$_POST["city"] . ($thestate!='' ? ', ' . $thestate : '') ?>" />
  3060. <input type="hidden" name="state" value="Outside US and Canada" />
  3061. <?php } ?>
  3062. <input type="hidden" name="zip" value="<?php print @$_POST["zip"]?>" />
  3063. <input type="hidden" name="country" value="<?php print $countryCode?>" />
  3064. <input type="hidden" name="email" value="<?php print @$_POST["email"]?>" />
  3065. <input type="hidden" name="phone" value="<?php print @$_POST["phone"]?>" />
  3066. <input type="hidden" name="id_type" value="1" />
  3067. <?php $sSQL = "SELECT cartID,cartProdID,pName,pPrice,cartQuantity," . (@$digidownloads==TRUE ? "pDownload," : "") . "pDescription FROM cart INNER JOIN products on cart.cartProdID=products.pID WHERE cartCompleted=0 AND cartSessionID='" . $thesessionid . "'";
  3068. $result = mysql_query($sSQL) or print(mysql_error());
  3069. $index=1;
  3070. while($rs=mysql_fetch_assoc($result)){
  3071. $thedesc = substr(trim(preg_replace("(\r\n|\n|\r)",'\\n',strip_tags($rs["pDescription"]))),0,254);
  3072. if($thedesc=="") $thedesc = substr(trim(preg_replace("(\r\n|\n|\r)",'\\n',strip_tags($rs["pName"]))),0,254);
  3073. print '<input type="hidden" name="c_prod_' . $index . '" value="' . str_replace(',','&#44;',str_replace('"','&quot;',$rs["cartProdID"])) . "," . $rs["cartQuantity"] . "\" />\r\n";
  3074. print '<input type="hidden" name="c_name_' . $index . '" value="' . str_replace('"','&quot;',strip_tags($rs["pName"])) . "\" />\r\n";
  3075. print '<input type="hidden" name="c_description_' . $index . '" value="' . str_replace('"','&quot;',$thedesc) . "\" />\r\n";
  3076. print '<input type="hidden" name="c_price_' . $index . '" value="' . number_format($rs["pPrice"],2,'.','') . "\" />\r\n";
  3077. if(@$digidownloads==TRUE)
  3078. if(trim($rs["pDownload"]) != "") print '<input type="hidden" name="c_tangible_' . $index . '" value="N" />' . "\r\n";
  3079. $index++;
  3080. }
  3081. if(trim(@$_POST["sname"]) != "" || trim(@$_POST["saddress"]) != ""){ ?>
  3082. <input type="hidden" name="ship_name" value="<?php print @$_POST["sname"]?>" />
  3083. <input type="hidden" name="ship_street_address" value="<?php print @$_POST["saddress"] . (trim(@$_POST["saddress2"])!='' ? ', ' . unstripslashes(@$_POST["saddress2"]) : '')?>" />
  3084. <input type="hidden" name="ship_city" value="<?php print @$_POST["scity"]?>" />
  3085. <input type="hidden" name="ship_state" value="<?php print @$_POST["sstate"]?>" />
  3086. <input type="hidden" name="ship_zip" value="<?php print @$_POST["szip"]?>" />
  3087. <input type="hidden" name="ship_country" value="<?php print @$_POST["scountry"]?>" />
  3088. <?php }
  3089. if($demomode)
  3090. print "<input type=\"hidden\" name=\"demo\" value=\"Y\" />";
  3091. }elseif($grandtotal > 0 && $ordPayProvider=="3"){ // Authorize.net SIM
  3092. if(@$secretword != ""){
  3093. $data1 = upsdecode($data1, $secretword);
  3094. $data2 = upsdecode($data2, $secretword);
  3095. } ?>
  3096. <form method=POST action="https://secure.authorize.net/gateway/transact.dll">
  3097. <input type="hidden" name="x_Version" value="3.0" />
  3098. <input type="hidden" name="x_Login" value="<?php print $data1?>" />
  3099. <input type="hidden" name="x_Show_Form" value="PAYMENT_FORM" />
  3100. <?php
  3101. if($ppmethod==1) print '<input type="hidden" name="x_type" value="AUTH_ONLY" />';
  3102. function vrhmac($key, $text){
  3103. $idatastr = " ";
  3104. $odatastr = " ";
  3105. $hkey = (string)$key;
  3106. $idatastr .= $text;
  3107. for($i=0; $i<64; $i++){
  3108. $idata[$i] = $ipad[$i] = 0x36;
  3109. $odata[$i] = $opad[$i] = 0x5C;
  3110. }
  3111. for($i=0; $i< strlen($hkey); $i++){
  3112. $ipad[$i] ^= ord($hkey{$i});
  3113. $opad[$i] ^= ord($hkey{$i});
  3114. $idata[$i] = ($ipad[$i] & 0xFF);
  3115. $odata[$i] = ($opad[$i] & 0xFF);
  3116. }
  3117. for($i=0; $i< strlen($text); $i++){
  3118. $idata[64+$i] = ord($text{$i}) & 0xFF;
  3119. }
  3120. for($i=0; $i< strlen($idatastr); $i++){
  3121. $idatastr{$i} = chr($idata[$i] & 0xFF);
  3122. }
  3123. for($i=0; $i< strlen($odatastr); $i++){
  3124. $odatastr{$i} = chr($odata[$i] & 0xFF);
  3125. }
  3126. $innerhashout = md5($idatastr);
  3127. for($i=0; $i<16; $i++)
  3128. $odatastr .= chr(hexdec(substr($innerhashout,$i*2,2)));
  3129. return md5($odatastr);
  3130. }
  3131. $thename = unstripslashes(trim(@$_POST["name"]));
  3132. if($thename != ""){
  3133. if(strstr($thename," ")){
  3134. $namearr = split(" ",$thename,2);
  3135. print '<input type="hidden" name="x_First_Name" value="' . str_replace('"','&quot;',$namearr[0]) . "\" />\n";
  3136. print '<input type="hidden" name="x_Last_Name" value="' . str_replace('"','&quot;',$namearr[1]) . "\" />\n";
  3137. }else
  3138. print '<input type="hidden" name="x_Last_Name" value="' . str_replace('"','&quot;',$thename) . "\" />\n";
  3139. }
  3140. $sequence = $orderid;
  3141. if(@$authnetadjust != "")
  3142. $tstamp = time() + $authnetadjust;
  3143. else
  3144. $tstamp = time();
  3145. $fingerprint = vrhmac($data2, $data1 . "^" . $sequence . "^" . $tstamp . "^" . number_format($grandtotal,2,'.','') . "^");
  3146. ?>
  3147. <input type="hidden" name="x_fp_sequence" value="<?php print $sequence?>" />
  3148. <input type="hidden" name="x_fp_timestamp" value="<?php print $tstamp?>" />
  3149. <input type="hidden" name="x_fp_hash" value="<?php print $fingerprint?>" />
  3150. <input type="hidden" name="x_address" value="<?php print unstripslashes(@$_POST["address"]) . (trim(@$_POST["address2"])!='' ? ', ' . unstripslashes(@$_POST["address2"]) : '')?>" />
  3151. <input type="hidden" name="x_city" value="<?php print unstripslashes(@$_POST["city"])?>" />
  3152. <input type="hidden" name="x_country" value="<?php print unstripslashes(@$_POST["country"])?>" />
  3153. <input type="hidden" name="x_phone" value="<?php print unstripslashes(@$_POST["phone"])?>" />
  3154. <input type="hidden" name="x_state" value="<?php if(trim(@$_POST["state"]) != "") print unstripslashes(@$_POST["state"]); else print unstripslashes(@$_POST["state2"]);?>" />
  3155. <input type="hidden" name="x_zip" value="<?php print unstripslashes(@$_POST["zip"])?>" />
  3156. <input type="hidden" name="x_cust_id" value="<?php print $orderid?>" />
  3157. <input type="hidden" name="x_Invoice_Num" value="<?php print $orderid?>" />
  3158. <input type="hidden" name="x_ect_ordid" value="<?php print $orderid?>" />
  3159. <input type="hidden" name="x_Description" value="<?php print substr($descstr,0,255)?>" />
  3160. <input type="hidden" name="x_email" value="<?php print unstripslashes(@$_POST["email"])?>" />
  3161. <?php if(trim(@$_POST["sname"]) != "" || trim(@$_POST["saddress"]) != ""){
  3162. $thename = trim(@$_POST["sname"]);
  3163. if($thename != ""){
  3164. if(strstr($thename," ")){
  3165. $namearr = split(" ",$thename,2);
  3166. print '<input type="hidden" name="x_Ship_To_First_Name" value="' . $namearr[0] . "\" />\n";
  3167. print '<input type="hidden" name="x_Ship_To_Last_Name" value="' . $namearr[1] . "\" />\n";
  3168. }else
  3169. print '<input type="hidden" name="x_Ship_To_Last_Name" value="' . $thename . "\" />\n";
  3170. } ?>
  3171. <input type="hidden" name="x_ship_to_address" value="<?php print unstripslashes(@$_POST["saddress"]) . (trim(@$_POST["saddress2"])!='' ? ', ' . unstripslashes(@$_POST["saddress2"]) : '')?>" />
  3172. <input type="hidden" name="x_ship_to_city" value="<?php print unstripslashes(@$_POST["scity"])?>" />
  3173. <input type="hidden" name="x_ship_to_country" value="<?php print unstripslashes(@$_POST["scountry"])?>" />
  3174. <input type="hidden" name="x_ship_to_state" value="<?php if(trim(@$_POST["state"]) != "") print unstripslashes(@$_POST["sstate"]); else print unstripslashes(@$_POST["sstate2"]);?>" />
  3175. <input type="hidden" name="x_ship_to_zip" value="<?php print unstripslashes(@$_POST["szip"])?>" />
  3176. <?php } ?>
  3177. <input type="hidden" name="x_Amount" value="<?php print number_format($grandtotal,2,'.','')?>" />
  3178. <input type="hidden" name="x_Relay_Response" value="True" />
  3179. <input type="hidden" name="x_Relay_URL" value="/admin/wpconfirm.php" />
  3180. <?php if($demomode){ ?>
  3181. <input type="hidden" name="x_Test_Request" value="TRUE" />
  3182. <?php }
  3183. }elseif($grandtotal == 0 || $ordPayProvider=="4"){ // Email ?>
  3184. <form method="post" action="thanks.php" style="margin:0px">
  3185. <input type="hidden" name="emailorder" value="<?php print $orderid?>" />
  3186. <input type="hidden" name="thesessionid" value="<?php print $thesessionid?>" />
  3187. <input type="hidden" name="cert_code" value="<?php print $cert_code?>" />
  3188. <?php }elseif($grandtotal > 0 && $ordPayProvider=="17"){ // Email 2 ?>
  3189. <form method="post" action="thanks.php" style="margin:0px">
  3190. <input type="hidden" name="secondemailorder" value="<?php print $orderid?>" />
  3191. <input type="hidden" name="thesessionid" value="<?php print $thesessionid?>" />
  3192. <?php }elseif($grandtotal > 0 && $ordPayProvider=="5"){ // WorldPay ?>
  3193. <form method="post" action="https://select.worldpay.com/wcc/purchase">
  3194. <input type="hidden" name="instId" value="<?php print $data1?>" />
  3195. <input type="hidden" name="cartId" value="<?php print $orderid?>" />
  3196. <input type="hidden" name="amount" value="<?php print number_format($grandtotal,2,'.','')?>" />
  3197. <input type="hidden" name="currency" value="<?php print $countryCurrency?>" />
  3198. <input type="hidden" name="desc" value="<?php print substr($descstr,0,255)?>" />
  3199. <input type="hidden" name="name" value="<?php print @$_POST["name"]?>" />
  3200. <input type="hidden" name="address" value="<?php print @$_POST["address"] . (trim(@$_POST["address2"])!='' ? ', ' . unstripslashes(@$_POST["address2"]) : '')?>&#10;<?php print @$_POST["city"]?>&#10;<?php
  3201. if(trim(@$_POST["state"]) != "")
  3202. print @$_POST["state"];
  3203. else
  3204. print @$_POST["state2"]; ?>" />
  3205. <input type="hidden" name="postcode" value="<?php print @$_POST["zip"]?>" />
  3206. <input type="hidden" name="country" value="<?php print $countryCode?>" />
  3207. <input type="hidden" name="tel" value="<?php print @$_POST["phone"]?>" />
  3208. <input type="hidden" name="email" value="<?php print @$_POST["email"]?>" />
  3209. <input type="hidden" name="authMode" value="<?php if($ppmethod==1) print 'E'; else print 'A'; ?>" />
  3210. <?php if($demomode){ ?>
  3211. <input type="hidden" name="testMode" value="100" />
  3212. <?php }
  3213. $data2arr = split("&",$data2);
  3214. $data2 = @$data2arr[0];
  3215. if($data2 != ""){
  3216. print '<input type="hidden" name="signatureFields" value="amount:currency:cartId" />' . "\r\n";
  3217. print '<input type="hidden" name="signature" value="' . md5($data2 . ":" . number_format($grandtotal,2,'.','') . ":" . $countryCurrency . ":" . $orderid) . '" />';
  3218. }
  3219. }elseif($grandtotal > 0 && $ordPayProvider=="6"){ // NOCHEX ?>
  3220. <form method="post" action="https://www.nochex.com/nochex.dll/checkout">
  3221. <input type="hidden" name="email" value="<?php print $data1?>" />
  3222. <input type="hidden" name="returnurl" value="<?php print $storeurl . (TRUE ? 'thanks.php?ncretval=' . $orderid . '&ncsessid=' . $thesessionid : '')?>" />
  3223. <input type="hidden" name="responderurl" value="/admin/ncconfirm.php" />
  3224. <input type="hidden" name="description" value="<?php print substr($descstr,0,255)?>" />
  3225. <input type="hidden" name="ordernumber" value="<?php print $orderid?>" />
  3226. <input type="hidden" name="amount" value="<?php print number_format($grandtotal,2,'.','')?>" />
  3227. <input type="hidden" name="firstline" value="<?php print unstripslashes(@$_POST["address"]) . (trim(@$_POST["address2"])!='' ? ', ' . unstripslashes(@$_POST["address2"]) : '')?>" />
  3228. <input type="hidden" name="town" value="<?php print unstripslashes(@$_POST["city"])?>" />
  3229. <input type="hidden" name="county" value="<?php if(trim(@$_POST["state"]) != "") print unstripslashes(@$_POST["state"]); else print unstripslashes(@$_POST["state2"]);?>" />
  3230. <input type="hidden" name="postcode" value="<?php print unstripslashes(@$_POST["zip"])?>" />
  3231. <input type="hidden" name="email_address_sender" value="<?php print unstripslashes(@$_POST["email"])?>" />
  3232. <?php $thename = unstripslashes(trim(@$_POST["name"]));
  3233. if($thename != ""){
  3234. if(strstr($thename," ")){
  3235. $namearr = split(" ",$thename,2);
  3236. print '<input type="hidden" name="firstname" value="' . str_replace('"','&quot;',$namearr[0]) . "\" />\n";
  3237. print '<input type="hidden" name="lastname" value="' . str_replace('"','&quot;',$namearr[1]) . "\" />\n";
  3238. }else
  3239. print '<input type="hidden" name="lastname" value="' . str_replace('"','&quot;',$thename) . "\" />\n";
  3240. }
  3241. if($demomode) print '<input type="hidden" name="status" value="test" />';
  3242. }elseif($grandtotal > 0 && $ordPayProvider=="7"){ // VeriSign Payflow Pro ?>
  3243. <form method="post" action="cart.php" onsubmit="return isvalidcard(this)">
  3244. <input type="hidden" name="mode" value="authorize" />
  3245. <input type="hidden" name="method" value="payflowpro" />
  3246. <input type="hidden" name="ordernumber" value="<?php print $orderid?>" />
  3247. <?php }elseif($grandtotal > 0 && $ordPayProvider=="8"){ // VeriSign Payflow Link
  3248. $paymentlink = 'https://payments.verisign.com/payflowlink';
  3249. if($data2=="VSA") $paymentlink='https://payments.verisign.com.au/payflowlink'; ?>
  3250. <form method="post" action="<?php print $paymentlink?>" >
  3251. <input type="hidden" name="LOGIN" value="<?php print $data1?>" />
  3252. <input type="hidden" name="PARTNER" value="<?php print $data2?>" />
  3253. <input type="hidden" name="CUSTID" value="<?php print $orderid?>" />
  3254. <input type="hidden" name="AMOUNT" value="<?php print number_format($grandtotal,2,'.','')?>" />
  3255. <input type="hidden" name="TYPE" value="S" />
  3256. <input type="hidden" name="DESCRIPTION" value="<?php print substr($descstr,0,255)?>" />
  3257. <input type="hidden" name="NAME" value="<?php print unstripslashes(@$_POST["name"])?>" />
  3258. <input type="hidden" name="ADDRESS" value="<?php print unstripslashes(@$_POST["address"]) . (trim(@$_POST["address2"])!='' ? ', ' . unstripslashes(@$_POST["address2"]) : '')?>" />
  3259. <input type="hidden" name="CITY" value="<?php print unstripslashes(@$_POST["city"])?>" />
  3260. <input type="hidden" name="STATE" value="<?php if(trim(@$_POST["state"]) != "") print unstripslashes(@$_POST["state"]); else print unstripslashes(@$_POST["state2"]);?>" />
  3261. <input type="hidden" name="ZIP" value="<?php print unstripslashes(@$_POST["zip"])?>" />
  3262. <input type="hidden" name="COUNTRY" value="<?php print unstripslashes(@$_POST["country"])?>" />
  3263. <input type="hidden" name="EMAIL" value="<?php print unstripslashes(@$_POST["email"])?>" />
  3264. <input type="hidden" name="PHONE" value="<?php print unstripslashes(@$_POST["phone"])?>" />
  3265. <input type="hidden" name="METHOD" value="CC" />
  3266. <input type="hidden" name="ORDERFORM" value="TRUE" />
  3267. <input type="hidden" name="SHOWCONFIRM" value="FALSE" />
  3268. <?php if(trim(@$_POST["sname"]) != "" || trim(@$_POST["saddress"]) != ""){ ?>
  3269. <input type="hidden" name="NAMETOSHIP" value="<?php print unstripslashes(@$_POST["sname"])?>" />
  3270. <input type="hidden" name="ADDRESSTOSHIP" value="<?php print unstripslashes(@$_POST["saddress"]) . (trim(@$_POST["saddress2"])!='' ? ', ' . unstripslashes(@$_POST["saddress2"]) : '')?>" />
  3271. <input type="hidden" name="CITYTOSHIP" value="<?php print unstripslashes(@$_POST["scity"])?>" />
  3272. <input type="hidden" name="STATETOSHIP" value="<?php if(trim(@$_POST["state"]) != "") print unstripslashes(@$_POST["sstate"]); else print unstripslashes(@$_POST["sstate2"]);?>" />
  3273. <input type="hidden" name="ZIPTOSHIP" value="<?php print unstripslashes(@$_POST["szip"])?>" />
  3274. <input type="hidden" name="COUNTRYTOSHIP" value="<?php print unstripslashes(@$_POST["scountry"])?>" />
  3275. <?php } ?>
  3276. <?php }elseif($grandtotal > 0 && $ordPayProvider=="9"){ // SECPay ?>
  3277. <form method="post" action="https://www.secpay.com/java-bin/ValCard" >
  3278. <input type="hidden" name="merchant" value="<?php print $data1?>" />
  3279. <input type="hidden" name="trans_id" value="<?php print $orderid?>" />
  3280. <input type="hidden" name="amount" value="<?php print number_format($grandtotal,2,'.','')?>" />
  3281. <input type="hidden" name="callback" value="/admin/wpconfirm.php" />
  3282. <input type="hidden" name="currency" value="<?php print $countryCurrency?>" />
  3283. <input type="hidden" name="cb_post" value="true" />
  3284. <input type="hidden" name="bill_name" value="<?php print unstripslashes(@$_POST["name"])?>" />
  3285. <input type="hidden" name="bill_addr_1" value="<?php print unstripslashes(@$_POST["address"])?>" />
  3286. <input type="hidden" name="bill_addr_2" value="<?php print unstripslashes(@$_POST["address2"])?>" />
  3287. <input type="hidden" name="bill_city" value="<?php print unstripslashes(@$_POST["city"])?>" />
  3288. <input type="hidden" name="bill_state" value="<?php if(trim(@$_POST["state"]) != "") print unstripslashes(@$_POST["state"]); else print unstripslashes(@$_POST["state2"]);?>" />
  3289. <input type="hidden" name="bill_post_code" value="<?php print unstripslashes(@$_POST["zip"])?>" />
  3290. <input type="hidden" name="bill_country" value="<?php print unstripslashes(@$_POST["country"])?>" />
  3291. <input type="hidden" name="bill_email" value="<?php print unstripslashes(@$_POST["email"])?>" />
  3292. <input type="hidden" name="bill_tel" value="<?php print unstripslashes(@$_POST["phone"])?>" />
  3293. <?php if(trim(@$_POST["sname"]) != "" || trim(@$_POST["saddress"]) != ""){ ?>
  3294. <input type="hidden" name="ship_name" value="<?php print unstripslashes(@$_POST["sname"])?>" />
  3295. <input type="hidden" name="ship_addr_1" value="<?php print unstripslashes(@$_POST["saddress"])?>" />
  3296. <input type="hidden" name="ship_addr_2" value="<?php print unstripslashes(@$_POST["saddress2"])?>" />
  3297. <input type="hidden" name="ship_city" value="<?php print unstripslashes(@$_POST["scity"])?>" />
  3298. <input type="hidden" name="ship_state" value="<?php if(trim(@$_POST["state"]) != "") print unstripslashes(@$_POST["sstate"]); else print unstripslashes(@$_POST["sstate2"]);?>" />
  3299. <input type="hidden" name="ship_post_code" value="<?php print unstripslashes(@$_POST["szip"])?>" />
  3300. <input type="hidden" name="ship_country" value="<?php print unstripslashes(@$_POST["scountry"])?>" />
  3301. <?php }
  3302. if($demomode){ ?>
  3303. <input type="hidden" name="test_status" value="true" />
  3304. <?php }
  3305. }elseif($grandtotal > 0 && $ordPayProvider=="10"){ // Capture Card ?>
  3306. <form method="post" action="thanks.php" onsubmit="return isvalidcard(this)" >
  3307. <input type="hidden" name="docapture" value="vsprods" />
  3308. <input type="hidden" name="ordernumber" value="<?php print $orderid?>" />
  3309. <?php }elseif($grandtotal > 0 && ($ordPayProvider=="11" || $ordPayProvider=="12")){ // PSiGate ?>
  3310. <form method="post" action="https://order.psigate.com/psigate.asp" <?php if($ordPayProvider=="12") print 'onsubmit="return isvalidcard(this)"' ?>>
  3311. <input type="hidden" name="MerchantID" value="<?php print $data1?>" />
  3312. <input type="hidden" name="Oid" value="<?php print $orderid?>" />
  3313. <input type="hidden" name="FullTotal" value="<?php print number_format($grandtotal,2,'.','')?>" />
  3314. <input type="hidden" name="ThanksURL" value="<?php print $storeurl?>thanks.php" />
  3315. <input type="hidden" name="NoThanksURL" value="<?php print $storeurl?>thanks.php" />
  3316. <input type="hidden" name="Chargetype" value="<?php if($ppmethod=="1") print "1"; else print "0"; ?>" />
  3317. <?php if($ordPayProvider=="11"){ ?><input type="hidden" name="Bname" value="<?php print unstripslashes(@$_POST["name"])?>" /><?php } ?>
  3318. <input type="hidden" name="Baddr1" value="<?php print unstripslashes(@$_POST["address"])?>" />
  3319. <input type="hidden" name="Baddr2" value="<?php print unstripslashes(@$_POST["address2"])?>" />
  3320. <input type="hidden" name="Bcity" value="<?php print unstripslashes(@$_POST["city"])?>" />
  3321. <input type="hidden" name="IP" value="<?php print @$_SERVER["REMOTE_ADDR"]?>" />
  3322. <?php if($countryID==1 && $stateAbbrev != ""){ ?>
  3323. <input type="hidden" name="Bstate" value="<?php print $stateAbbrev?>" />
  3324. <?php }else{ ?>
  3325. <input type="hidden" name="Bstate" value="<?php if(trim(@$_POST["state"]) != "") print unstripslashes(@$_POST["state"]); else print unstripslashes(@$_POST["state2"]);?>" />
  3326. <?php } ?>
  3327. <input type="hidden" name="Bzip" value="<?php print unstripslashes(@$_POST["zip"])?>" />
  3328. <input type="hidden" name="Bcountry" value="<?php print $countryCode?>" />
  3329. <input type="hidden" name="Email" value="<?php print unstripslashes(@$_POST["email"])?>" />
  3330. <input type="hidden" name="Phone" value="<?php print unstripslashes(@$_POST["phone"])?>" />
  3331. <?php if(trim(@$_POST["sname"]) != "" || trim(@$_POST["saddress"]) != ""){ ?>
  3332. <input type="hidden" name="Sname" value="<?php print unstripslashes(@$_POST["sname"])?>" />
  3333. <input type="hidden" name="Saddr1" value="<?php print unstripslashes(@$_POST["saddress"])?>" />
  3334. <input type="hidden" name="Saddr2" value="<?php print unstripslashes(@$_POST["saddress2"])?>" />
  3335. <input type="hidden" name="Scity" value="<?php print unstripslashes(@$_POST["scity"])?>" />
  3336. <input type="hidden" name="Sstate" value="<?php if(trim(@$_POST["state"]) != "") print unstripslashes(@$_POST["sstate"]); else print unstripslashes(@$_POST["sstate2"]);?>" />
  3337. <input type="hidden" name="Szip" value="<?php print unstripslashes(@$_POST["szip"])?>" />
  3338. <input type="hidden" name="Scountry" value="<?php print unstripslashes(@$_POST["scountry"])?>" />
  3339. <?php }
  3340. if($demomode){ ?>
  3341. <input type="hidden" name="Result" value="1" />
  3342. <?php }
  3343. }elseif($grandtotal > 0 && $ordPayProvider=="13"){ // Authorize.net AIM ?>
  3344. <?
  3345. // splits the cart page into different funnels
  3346. $google_tracker="/cart/payment.php";
  3347. // end
  3348. ?>
  3349. <form method="post" action="cart.php" onsubmit="return isvalidcard(this)" >
  3350. <input type="hidden" name="mode" value="authorize" />
  3351. <input type="hidden" name="method" value="authnetaim" />
  3352. <input type="hidden" name="ordernumber" value="<?php print $orderid?>" />
  3353. <input type="hidden" name="description" value="<?php print substr($descstr,0,254)?>" />
  3354. <?php }elseif($grandtotal > 0 && $ordPayProvider=="14"){ // Custom Pay Provider
  3355. include(APPPATH.'views/pages/admin/customppsend.php');
  3356. }elseif($grandtotal > 0 && $ordPayProvider=="15"){ // Netbanx ?>
  3357. <form method="post" action="https://www.netbanx.com/cgi-bin/payment/<?php print $data1;?>" >
  3358. <input type="hidden" name="order_id" value="<?php print $orderid?>" />
  3359. <input type="hidden" name="payment_amount" value="<?php print number_format($grandtotal,2,'.','')?>" />
  3360. <input type="hidden" name="currency_code" value="<?php print $countryCurrency?>" />
  3361. <input type="hidden" name="cardholder_name" value="<?php print unstripslashes(@$_POST["name"])?>" />
  3362. <input type="hidden" name="email" value="<?php print unstripslashes(@$_POST["email"])?>" />
  3363. <input type="hidden" name="postcode" value="<?php print unstripslashes(@$_POST["zip"])?>" />
  3364. <?php }elseif($grandtotal > 0 && $ordPayProvider=="16"){ // Linkpoint
  3365. if($demomode) $theurl='https://staging.linkpt.net/lpc/servlet/lppay'; else $theurl='https://www.linkpointcentral.com/lpc/servlet/lppay';
  3366. $subtotal = round($totalgoods - $totaldiscounts, 2);
  3367. $shipping = round(($shipping + $handling) - $freeshipamnt, 2);
  3368. $tax = round($stateTax + $countryTax, 2);
  3369. ?>
  3370. <form action="<?php print $theurl?>" method="post"<?php if($data2=="1") print ' onsubmit="return isvalidcard(this)"' ?> >
  3371. <input type="hidden" name="storename" value="<?php print $data1?>" />
  3372. <input type="hidden" name="mode" value="payonly" />
  3373. <input type="hidden" name="ponumber" value="<?php print $orderid?>" />
  3374. <input type="hidden" name="responseURL" value="<?php print $storeurl?>thanks.php" />
  3375. <input type="hidden" name="subtotal" value="<?php print number_format($subtotal,2,'.','')?>" />
  3376. <input type="hidden" name="chargetotal" value="<?php print number_format($subtotal+$shipping+$tax,2,'.','')?>" />
  3377. <input type="hidden" name="shipping" value="<?php print number_format($shipping,2,'.','')?>" />
  3378. <input type="hidden" name="tax" value="<?php print number_format($tax,2,'.','')?>" />
  3379. <?php if($data2!="1"){ ?><input type="hidden" name="bname" value="<?php print unstripslashes(@$_POST["name"])?>" /><?php } ?>
  3380. <input type="hidden" name="baddr1" value="<?php print unstripslashes(@$_POST["address"])?>" />
  3381. <input type="hidden" name="baddr2" value="<?php print unstripslashes(@$_POST["address2"])?>" />
  3382. <input type="hidden" name="bcity" value="<?php print unstripslashes(@$_POST["city"])?>" />
  3383. <?php if($countryID==1 && $stateAbbrev != ""){ ?>
  3384. <input type="hidden" name="bstate" value="<?php print $stateAbbrev?>" />
  3385. <?php }else{ ?>
  3386. <input type="hidden" name="bstate" value="<?php if(trim(@$_POST["state"]) != "") print unstripslashes(@$_POST["state"]); else print unstripslashes(@$_POST["state2"]);?>" />
  3387. <?php } ?>
  3388. <input type="hidden" name="bzip" value="<?php print unstripslashes(@$_POST["zip"])?>" />
  3389. <input type="hidden" name="bcountry" value="<?php print $countryCode?>" />
  3390. <input type="hidden" name="email" value="<?php print unstripslashes(@$_POST["email"])?>" />
  3391. <input type="hidden" name="phone" value="<?php print unstripslashes(@$_POST["phone"])?>" />
  3392. <input type="hidden" name="txntype" value="<?php if($ppmethod==1) print "preauth"; else print "sale" ?>" />
  3393. <?php if(trim(@$_POST["sname"]) != "" || trim(@$_POST["saddress"]) != ""){ ?>
  3394. <input type="hidden" name="sname" value="<?php print unstripslashes(@$_POST["sname"])?>" />
  3395. <input type="hidden" name="saddr1" value="<?php print unstripslashes(@$_POST["saddress"])?>" />
  3396. <input type="hidden" name="saddr2" value="<?php print unstripslashes(@$_POST["saddress2"])?>" />
  3397. <input type="hidden" name="scity" value="<?php print unstripslashes(@$_POST["scity"])?>" />
  3398. <input type="hidden" name="sstate" value="<?php if(trim(@$_POST["state"]) != "") print unstripslashes(@$_POST["sstate"]); else print unstripslashes(@$_POST["sstate2"]);?>" />
  3399. <input type="hidden" name="szip" value="<?php print unstripslashes(@$_POST["szip"])?>" />
  3400. <input type="hidden" name="scountry" value="<?php print $shipCountryCode?>" />
  3401. <?php }
  3402. if($demomode){ ?>
  3403. <input type="hidden" name="txnmode" value="test" />
  3404. <?php }
  3405. }elseif($grandtotal > 0 && $ordPayProvider=="18"){ // PayPal Direct Payment ?>
  3406. <form method="post" action="cart.php" onsubmit="return isvalidcard(this)" >
  3407. <input type="hidden" name="mode" value="authorize" />
  3408. <input type="hidden" name="method" value="paypalpro" />
  3409. <input type="hidden" name="ordernumber" value="<?php print $orderid?>" />
  3410. <input type="hidden" name="description" value="<?php print str_replace('"','&quot;',substr($descstr,0,254))?>" />
  3411. <?php }elseif($grandtotal > 0 && $ordPayProvider=="19"){ // PayPal Express Payment ?>
  3412. <form method="post" action="thanks.php" >
  3413. <input type="hidden" name="token" value="<?php print $token?>" />
  3414. <input type="hidden" name="method" value="paypalexpress" />
  3415. <input type="hidden" name="ordernumber" value="<?php print $orderid?>" />
  3416. <input type="hidden" name="payerid" value="<?php print $payerid?>" />
  3417. <input type="hidden" name="email" value="<?php print $ordEmail?>" />
  3418. <?php }
  3419. }
  3420. if($success){
  3421. ?>
  3422. <div id="cart_nav"><img src="/lib/images/new_images/subnav_gray_13.gif" alt="View Order" /><img src="/lib/images/new_images/subnav_gray_15.gif" alt="Customer Info" /><img src="/lib/images/new_images/subnav_green_17.gif" alt="Final Review" /><img src="/lib/images/new_images/subnav_gray_19.gif" alt="Confirmation" /><img src="/lib/images/new_images/subnav_gray_21.gif" alt="View Receipt" /></div>
  3423. <table class="cobtbl" width="<?=$maintablewidth?>" border="0" bordercolor="#B1B1B1" cellspacing="1" cellpadding="3" bgcolor="#B1B1B1">
  3424. <tr>
  3425. <td class="cobhl" bgcolor="#EBEBEB" height="30" colspan="2" align="center"><strong><?php print $xxChkCmp?></strong></td>
  3426. </tr>
  3427. <?php if($cpncode!="" && ! $gotcpncode){ ?>
  3428. <tr>
  3429. <td class="cobhl" bgcolor="#EBEBEB" height="30" align="right" width="50%"><strong><?php print $xxGifCer?>:</strong></td>
  3430. <td class="cobll" bgcolor="#FFFFFF" height="30" align="left" width="50%"><font size="1"><?php
  3431. if(@$_POST["shipping"]=="") $jumpback=1; else $jumpback=2;
  3432. printf($xxNoGfCr,$cpncode,$jumpback);?></font></td>
  3433. </tr>
  3434. <?php }
  3435. if($cpnmessage!=""){ ?>
  3436. <tr>
  3437. <td class="cobhl" bgcolor="#EBEBEB" height="30" align="right" width="50%"><strong><?php print $xxAppDs?>:</strong></strong></td>
  3438. <td class="cobll" bgcolor="#FFFFFF" height="30" align="left" width="50%"><?php print $cpnmessage?></td>
  3439. </tr>
  3440. <?php }
  3441. //HCS - DRE 03/07/05 Gift Cert Mod START
  3442. if($gcmessage!=""){ ?>
  3443. <tr>
  3444. <td class="cobhl" bgcolor="#EBEBEB" height="30" align="right" width="50%"><strong>Gift Certificate Code:</strong></b></td>
  3445. <td class="cobll" bgcolor="#FFFFFF" height="30" align="left" width="50%"><?php print $gcmessage?></td>
  3446. </tr>
  3447. <?php }
  3448. //HCS - DRE 03/07/05 Gift Cert Mod STOP
  3449. ?>
  3450. <tr>
  3451. <td class="cobhl" bgcolor="#EBEBEB" height="30" align="right" width="50%"><strong><?php print $xxTotGds?>:</strong></td>
  3452. <td class="cobll" bgcolor="#FFFFFF" height="30" align="left" width="50%"><?php print FormatEuroCurrency($totalgoods)?></td>
  3453. </tr>
  3454. <?php if($shipType != 0){ ?>
  3455. <tr>
  3456. <td class="cobhl" bgcolor="#EBEBEB" height="30" align="right" width="50%"><strong><?php print $xxShippg?>:</strong></td>
  3457. <td class="cobll" bgcolor="#FFFFFF" height="30" align="left" width="50%"><?php print FormatEuroCurrency($shipping)?></td>
  3458. </tr>
  3459. <?php }
  3460. if($handling != 0){ ?>
  3461. <tr>
  3462. <td class="cobhl" bgcolor="#EBEBEB" height="30" align="right" width="50%"><strong><?php print $xxHndlg?>:</strong></td>
  3463. <td class="cobll" bgcolor="#FFFFFF" height="30" align="left" width="50%"><?php print FormatEuroCurrency($handling)?></td>
  3464. </tr>
  3465. <?php }
  3466. if(($totaldiscounts + $freeshipamnt) !=0){ ?>
  3467. <tr>
  3468. <td class="cobhl" bgcolor="#EBEBEB" height="30" align="right" width="50%"><strong><?php print $xxTotDs?>:</strong></td>
  3469. <td class="cobll" bgcolor="#FFFFFF" height="30" align="left" width="50%"><font color="#FF0000"><?php print FormatEuroCurrency($totaldiscounts+$freeshipamnt)?></font></td>
  3470. </tr>
  3471. <tr>
  3472. <td class="cobhl" bgcolor="#EBEBEB" height="30" align="right" width="50%"><strong><?php print $xxSubTot?>:</strong></td>
  3473. <td class="cobll" bgcolor="#FFFFFF" height="30" align="left" width="50%"><?php print FormatEuroCurrency(($totalgoods+$shipping+$handling)-($totaldiscounts+$freeshipamnt))?></td>
  3474. </tr>
  3475. <?php }
  3476. if($usehst){ ?>
  3477. <tr>
  3478. <td class="cobhl" bgcolor="#EBEBEB" height="30" align="right" width="50%"><strong><?php print $xxHST?>:</strong></td>
  3479. <td class="cobll" bgcolor="#FFFFFF" height="30" align="left" width="50%"><?php print FormatEuroCurrency($stateTax+$countryTax)?></td>
  3480. </tr>
  3481. <?php }else{
  3482. if($stateTax != 0.0){ ?>
  3483. <tr>
  3484. <td class="cobhl" bgcolor="#EBEBEB" height="30" align="right" width="50%"><strong><?php print $xxStaTax?>:</strong></td>
  3485. <td class="cobll" bgcolor="#FFFFFF" height="30" align="left" width="50%"><?php print FormatEuroCurrency($stateTax)?></td>
  3486. </tr>
  3487. <?php }
  3488. if($countryTax != 0.0){ ?>
  3489. <tr>
  3490. <td class="cobhl" bgcolor="#EBEBEB" height="30" align="right" width="50%"><strong><?php print $xxCntTax?>:</strong></td>
  3491. <td class="cobll" bgcolor="#FFFFFF" height="30" align="left" width="50%"><?php print FormatEuroCurrency($countryTax)?></td>
  3492. </tr>
  3493. <?php }
  3494. }?>
  3495. <?php //HCS - DRE 03/02/05 Gift Cert Mod START
  3496. if($pendingamt != 0) {?>
  3497. <tr>
  3498. <td class="cobhl" bgcolor="#EBEBEB" height="30" align="right" width="50%"><strong>Gift Certificate Amount: </strong></td>
  3499. <td class="cobll" bgcolor="#FFFFFF" height="30" align="left" width="50%"><?php print FormatEuroCurrency($pendingamt)?></td>
  3500. </tr>
  3501. <?php }
  3502. //HCS - DRE 03/02/05 Gift Cert Mod STOP
  3503. ?>
  3504. <tr>
  3505. <td class="cobhl" bgcolor="#EBEBEB" height="30" align="right" width="50%"><strong><?php print $xxGndTot?>:</strong></td>
  3506. <td class="cobll" bgcolor="#FFFFFF" height="30" align="left" width="50%"><?php print FormatEuroCurrency($grandtotal)?></td>
  3507. </tr>
  3508. <? if($ordPayProvider=="14"){?>
  3509. <tr>
  3510. <td class="cobhl" bgcolor="#EBEBEB" height="30" align="right" width="50%"><strong>Terms:</strong></td>
  3511. <td class="cobll" bgcolor="#FFFFFF" height="30" align="left" width="50%">Net 30 </td>
  3512. </tr>
  3513. <? } ?>
  3514. <?php if($grandtotal > 0 && ($ordPayProvider=="7" || $ordPayProvider=="10" || $ordPayProvider=="12" || $ordPayProvider=="13" || ($ordPayProvider=="16" && $data2=="1") || $ordPayProvider=="18")){ // VeriSign Payflow Pro || Capture Card || PSiGate || Auth.NET AIM || PayPal Pro
  3515. if($ordPayProvider=="7" || $ordPayProvider=="12" || $ordPayProvider=="13" || $ordPayProvider=="16" || $ordPayProvider=="18") $data1 = "XXXXXXX0XXXXXXXXXXXXXXXXX";
  3516. $isPSiGate = ($ordPayProvider=="12");
  3517. $isLinkpoint = ($ordPayProvider=="16");
  3518. if($isPSiGate){
  3519. $sscardname="bname";
  3520. $sscardnum = "CardNumber";
  3521. $ssexmon = "ExpMonth";
  3522. $ssexyear = "ExpYear";
  3523. }elseif($isLinkpoint){
  3524. $sscardname="bname";
  3525. $sscardnum = "cardnumber";
  3526. $ssexmon = "expmonth";
  3527. $ssexyear = "expyear";
  3528. $sscvv2 = "cvm";
  3529. }else{
  3530. $sscardname="cardname";
  3531. $sscardnum = "ACCT";
  3532. $ssexmon = "EXMON";
  3533. $ssexyear = "EXYEAR";
  3534. $sscvv2 = "CVV2";
  3535. }
  3536. $acceptecheck = ((@$acceptecheck==true) && ($ordPayProvider=="13"));
  3537. ?>
  3538. <script language="JavaScript" type="text/javascript">
  3539. <!--
  3540. var isswitchcard=false;
  3541. function isCreditCard(st){
  3542. // Encoding only works on cards with less than 19 digits
  3543. if (st.length > 19)
  3544. return (false);
  3545. sum = 0; mul = 1; l = st.length;
  3546. for (i = 0; i < l; i++) {
  3547. digit = st.substring(l-i-1,l-i);
  3548. tproduct = parseInt(digit ,10)*mul;
  3549. if (tproduct >= 10)
  3550. sum += (tproduct % 10) + 1;
  3551. else
  3552. sum += tproduct;
  3553. if (mul == 1)
  3554. mul++;
  3555. else
  3556. mul = mul - 1;
  3557. }
  3558. if ((sum % 10) == 0)
  3559. return (true);
  3560. else
  3561. return (false);
  3562. }
  3563. function isVisa(cc){ // 4111 1111 1111 1111
  3564. if (((cc.length == 16) || (cc.length == 13)) && (cc.substring(0,1) == 4))
  3565. return isCreditCard(cc);
  3566. return false;
  3567. }
  3568. function isMasterCard(cc){ // 5500 0000 0000 0004
  3569. firstdig = cc.substring(0,1);
  3570. seconddig = cc.substring(1,2);
  3571. if ((cc.length == 16) && (firstdig == 5) && ((seconddig >= 1) && (seconddig <= 5)))
  3572. return isCreditCard(cc);
  3573. return false;
  3574. }
  3575. function isAmericanExpress(cc){ // 340000000000009
  3576. firstdig = cc.substring(0,1);
  3577. seconddig = cc.substring(1,2);
  3578. if ((cc.length == 15) && (firstdig == 3) && ((seconddig == 4) || (seconddig == 7)))
  3579. return isCreditCard(cc);
  3580. return false;
  3581. }
  3582. function isDinersClub(cc){ // 30000000000004
  3583. firstdig = cc.substring(0,1);
  3584. seconddig = cc.substring(1,2);
  3585. if ((cc.length == 14) && (firstdig == 3) &&
  3586. ((seconddig == 0) || (seconddig == 6) || (seconddig == 8)))
  3587. return isCreditCard(cc);
  3588. return false;
  3589. }
  3590. function isDiscover(cc){ // 6011000000000004
  3591. first4digs = cc.substring(0,4);
  3592. if ((cc.length == 16) && (first4digs == "6011"))
  3593. return isCreditCard(cc);
  3594. return false;
  3595. }
  3596. function isAusBankcard(cc){ // 5610591000000009
  3597. first4digs = cc.substring(0,4);
  3598. if ((cc.length == 16) && (first4digs == "5610"))
  3599. return isCreditCard(cc);
  3600. return false;
  3601. }
  3602. function isEnRoute(cc){ // 201400000000009
  3603. first4digs = cc.substring(0,4);
  3604. if ((cc.length == 15) && ((first4digs == "2014") || (first4digs == "2149")))
  3605. return isCreditCard(cc);
  3606. return false;
  3607. }
  3608. function isJCB(cc){
  3609. first4digs = cc.substring(0,4);
  3610. if ((cc.length == 16) && ((first4digs == "3088") || (first4digs == "3096") || (first4digs == "3112") || (first4digs == "3158") || (first4digs == "3337") || (first4digs == "3528")))
  3611. return isCreditCard(cc);
  3612. return false;
  3613. }
  3614. function isSwitch(cc){ // 675911111111111128
  3615. first4digs = cc.substring(0,4);
  3616. if ((cc.length == 16 || cc.length == 17 || cc.length == 18 || cc.length == 19) && ((first4digs == "4903") || (first4digs == "4911") || (first4digs == "4936") || (first4digs == "5641") || (first4digs == "6333") || (first4digs == "6759") || (first4digs == "6334") || (first4digs == "6767"))){
  3617. isswitchcard=isCreditCard(cc);
  3618. return(isswitchcard);
  3619. }
  3620. return false;
  3621. }
  3622. function isvalidcard(theForm){
  3623. cc = theForm.<?php print $sscardnum?>.value;
  3624. newcode = "";
  3625. l = cc.length;
  3626. for(i=0;i<l;i++){
  3627. digit = cc.substring(i,i+1);
  3628. digit = parseInt(digit ,10);
  3629. if(!isNaN(digit)) newcode += digit;
  3630. }
  3631. cc=newcode;
  3632. if (theForm.<?php print $sscardname?>.value==""){
  3633. alert("<?php print $xxPlsEntr . ' \"' . $xxCCName . '\"' ?>");
  3634. theForm.<?php print $sscardname?>.focus();
  3635. return false;
  3636. }
  3637. <?php if($acceptecheck==true){ ?>
  3638. if(cc!="" && theForm.accountnum.value!=""){
  3639. alert("Please enter either Credit Card OR ECheck details");
  3640. return(false);
  3641. }else if(theForm.accountnum.value!=""){
  3642. if(theForm.accountname.value==""){
  3643. alert("Please enter a value in the field \"Account Name\".");
  3644. theForm.accountname.focus();
  3645. return false;
  3646. }
  3647. if(theForm.bankname.value==""){
  3648. alert("Please enter a value in the field \"Bank Name\".");
  3649. theForm.bankname.focus();
  3650. return false;
  3651. }
  3652. if(theForm.routenumber.value==""){
  3653. alert("Please enter a value in the field \"Routing Number\".");
  3654. theForm.routenumber.focus();
  3655. return false;
  3656. }
  3657. if(theForm.accounttype.selectedIndex==0){
  3658. alert("Please select your account type: (Checking / Savings).");
  3659. theForm.accounttype.focus();
  3660. return false;
  3661. }
  3662. <?php if(@$wellsfargo==true){ ?>
  3663. if(theForm.orgtype.selectedIndex==0){
  3664. alert("Please select your account type: (Personal / Business).");
  3665. theForm.orgtype.focus();
  3666. return false;
  3667. }
  3668. if(theForm.taxid.value=="" && theForm.licensenumber.value==""){
  3669. alert("Please enter either a Tax ID number or Drivers License Details.");
  3670. theForm.taxid.focus();
  3671. return false;
  3672. }
  3673. if(theForm.taxid.value==""){
  3674. if(theForm.licensestate.selectedIndex==0){
  3675. alert("Please select your Drivers License State.");
  3676. theForm.licensestate.focus();
  3677. return false;
  3678. }
  3679. if(theForm.dldobmon.selectedIndex==0){
  3680. alert("Please select your Drivers License D.O.B. Month.");
  3681. theForm.dldobmon.focus();
  3682. return false;
  3683. }
  3684. if(theForm.dldobday.selectedIndex==0){
  3685. alert("Please select your Drivers License D.O.B. Day.");
  3686. theForm.dldobday.focus();
  3687. return false;
  3688. }
  3689. if(theForm.dldobyear.selectedIndex==0){
  3690. alert("Please select your Drivers License D.O.B. year.");
  3691. theForm.dldobyear.focus();
  3692. return false;
  3693. }
  3694. }
  3695. <?php } ?>
  3696. }else{
  3697. <?php } ?>
  3698. if (true <?php
  3699. if(substr($data1,0,1)=="X") print "&& !isVisa(cc) ";
  3700. if(substr($data1,1,1)=="X") print "&& !isMasterCard(cc) ";
  3701. if(substr($data1,2,1)=="X") print "&& !isAmericanExpress(cc) ";
  3702. if(substr($data1,3,1)=="X") print "&& !isDinersClub(cc) ";
  3703. if(substr($data1,4,1)=="X") print "&& !isDiscover(cc) ";
  3704. if(substr($data1,5,1)=="X") print "&& !isEnRoute(cc) ";
  3705. if(substr($data1,6,1)=="X") print "&& !isJCB(cc) ";
  3706. if(substr($data1,7,1)=="X") print "&& !isSwitch(cc) ";
  3707. if(substr($data1,8,1)=="X") print "&& !isAusBankcard(cc) "; ?>){
  3708. <?php if($acceptecheck==true) $xxValCC="Please enter a valid credit card number or bank account details if paying by ECheck."; ?>
  3709. alert("<?php print $xxValCC?>");
  3710. theForm.<?php print $sscardnum?>.focus();
  3711. return false;
  3712. }
  3713. if(theForm.<?php print $ssexmon?>.selectedIndex==0){
  3714. alert("<?php print $xxCCMon?>");
  3715. theForm.<?php print $ssexmon?>.focus();
  3716. return false;
  3717. }
  3718. if(theForm.<?php print $ssexyear?>.selectedIndex==0){
  3719. alert("<?php print $xxCCYear?>");
  3720. theForm.<?php print $ssexyear?>.focus();
  3721. return false;
  3722. }
  3723. <?php if(substr($data1,7,1)=="X"){ ?>
  3724. if(theForm.IssNum.value=="" && isswitchcard){
  3725. alert("Please enter an issue number / start date for Switch/Solo cards.");
  3726. theForm.IssNum.focus();
  3727. return false;
  3728. }
  3729. <?php }
  3730. if(@$requirecvv==TRUE){ ?>
  3731. if(theForm.<?php print $sscvv2?>.value==""){
  3732. alert("<?php print $xxPlsEntr . ' \"' . str_replace('"','\"',$xx34code) . '\"'?>");
  3733. theForm.<?php print $sscvv2?>.focus();
  3734. return false;
  3735. }
  3736. <?php }
  3737. if(@$acceptecheck==true) print '}'; ?>
  3738. return true;
  3739. }
  3740. //-->
  3741. </script>
  3742. <?php if(@$_SERVER["HTTPS"] != "on" && (@$_SERVER["SERVER_PORT"] != "443") && @$nochecksslserver != TRUE){ ?>
  3743. <tr height="30">
  3744. <td class="cobhl" bgcolor="#EBEBEB" align="center" colspan="2"><strong><font color="#FF0000">This site may not be secure. Do not enter real Credit Card numbers.</font></strong></td>
  3745. </tr>
  3746. <?php } ?>
  3747. <tr>
  3748. <td class="cobhl" bgcolor="#EBEBEB" height="30" colspan="2" align="center"><strong><?php print $xxCCDets ?></strong></td>
  3749. </tr>
  3750. <tr height="30">
  3751. <td class="cobhl" bgcolor="#EBEBEB" align="right" width="50%"><strong><?php print $xxCCName?>:</strong></td>
  3752. <td class="cobll" bgcolor="#FFFFFF" align="left" width="50%"><input type="text" name="<?php print $sscardname?>" size="<?php print atb(21)?>" value="<?php print @$_POST["name"]?>" autocomplete="off" /></td>
  3753. </tr>
  3754. <tr height="30">
  3755. <td class="cobhl" bgcolor="#EBEBEB" align="right" width="50%"><strong><?php print $xxCrdNum?>:</strong></td>
  3756. <td class="cobll" bgcolor="#FFFFFF" align="left" width="50%"><input type="text" name="<?php print $sscardnum?>" size="<?php print atb(21)?>" autocomplete="off" /></td>
  3757. </tr>
  3758. <tr height="30">
  3759. <td class="cobhl" bgcolor="#EBEBEB" align="right" width="50%"><strong><?php print $xxExpEnd?>:</strong></td>
  3760. <td class="cobll" bgcolor="#FFFFFF" align="left" width="50%">
  3761. <select name="<?php print $ssexmon?>" size="1">
  3762. <option value=""><?php print $xxMonth?></option>
  3763. <?php for($index=1; $index<=12; $index++){
  3764. if($index < 10) $themonth = "0" . $index; else $themonth = $index;
  3765. print "<option value='" . $themonth . "'>" . $themonth . "</option>\n";
  3766. } ?>
  3767. </select> / <select name="<?php print $ssexyear?>" size="1">
  3768. <option value=""><?php print $xxYear?></option>
  3769. <?php $thisyear=date("Y", time());
  3770. for($index=$thisyear; $index <= $thisyear+10; $index++){
  3771. if($isPSiGate)
  3772. print "<option value='" . substr($index,-2) . "'>" . $index . "</option>\n";
  3773. else
  3774. print "<option value='" . $index . "'>" . $index . "</option>\n";
  3775. } ?>
  3776. </select>
  3777. </td>
  3778. </tr>
  3779. <?php if(! $isPSiGate){ ?>
  3780. <tr height="30">
  3781. <td class="cobhl" bgcolor="#EBEBEB" align="right" width="50%"><strong><?php print $xx34code?>:</strong></td>
  3782. <td class="cobll" bgcolor="#FFFFFF" align="left" width="50%"><input type="text" name="<?php print $sscvv2?>" size="<?php print atb(4)?>" autocomplete="off" /> <strong><?php if(@$requirecvv!=TRUE)print $xxIfPres?></strong> <a href="../sec_codes.html" onclick="window.open(this.href,'ccv','directories=no,width=600,height=400,top=20,left=20,location=no,status=no,toolbar=no,resizable=yes',false); return false;">Example</a></td>
  3783. </tr>
  3784. <?php }
  3785. if(substr($data1,7,1)=="X"){ ?>
  3786. <tr height="30">
  3787. <td class="cobhl" bgcolor="#EBEBEB" align="right" width="50%"><strong>Issue Number / Start Date:</strong></td>
  3788. <td class="cobll" bgcolor="#FFFFFF" align="left" width="50%"><input type="text" name="IssNum" size="<?php print atb(4)?>" autocomplete="off" /> <strong>(Switch/Solo Only)</strong></td>
  3789. </tr>
  3790. <?php }
  3791. if($acceptecheck==true){ // Auth.net ?>
  3792. <tr>
  3793. <td class="cobhl" bgcolor="#EBEBEB" height="30" colspan="2" align="center"><strong>ECheck Details</strong><br /><font size="1">Please enter either Credit Card OR ECheck details</font></td>
  3794. </tr>
  3795. <tr height="30">
  3796. <td class="cobhl" bgcolor="#EBEBEB" align="right" width="50%"><strong>Account Name:</strong></td>
  3797. <td class="cobll" bgcolor="#FFFFFF" align="left" width="50%"><input type="text" name="accountname" size="<?php print atb(21)?>" autocomplete="off" value="<?php print @$_POST["name"]?>" /></td>
  3798. </tr>
  3799. <tr height="30">
  3800. <td class="cobhl" bgcolor="#EBEBEB" align="right" width="50%"><strong>Account Number:</strong></td>
  3801. <td class="cobll" bgcolor="#FFFFFF" align="left" width="50%"><input type="text" name="accountnum" size="<?php print atb(21)?>" autocomplete="off" /></td>
  3802. </tr>
  3803. <tr height="30">
  3804. <td class="cobhl" bgcolor="#EBEBEB" align="right" width="50%"><strong>Bank Name:</strong></td>
  3805. <td class="cobll" bgcolor="#FFFFFF" align="left" width="50%"><input type="text" name="bankname" size="<?php print atb(21)?>" autocomplete="off" /></td>
  3806. </tr>
  3807. <tr height="30">
  3808. <td class="cobhl" bgcolor="#EBEBEB" align="right" width="50%"><strong>Routing Number:</strong></td>
  3809. <td class="cobll" bgcolor="#FFFFFF" align="left" width="50%"><input type="text" name="routenumber" size="<?php print atb(10)?>" autocomplete="off" /></td>
  3810. </tr>
  3811. <tr height="30">
  3812. <td class="cobhl" bgcolor="#EBEBEB" align="right" width="50%"><strong>Account Type:</strong></td>
  3813. <td class="cobll" bgcolor="#FFFFFF" align="left" width="50%"><select name="accounttype" size="1"><option value=""><?php print $xxPlsSel?></option><option value="CHECKING">Checking</option><option value="SAVINGS">Savings</option><option value="BUSINESSCHECKING">Business Checking</option></select></td>
  3814. </tr>
  3815. <?php if(@$wellsfargo==true){ ?>
  3816. <tr height="30">
  3817. <td class="cobhl" bgcolor="#EBEBEB" align="right" width="50%"><strong>Personal or Business Acct.:</strong></td>
  3818. <td class="cobll" bgcolor="#FFFFFF" align="left" width="50%"><select name="orgtype" size="1"><option value=""><?php print $xxPlsSel?></option><option value="I">Personal</option><option value="B">Business</option></select></td>
  3819. </tr>
  3820. <tr height="30">
  3821. <td class="cobhl" bgcolor="#EBEBEB" align="right" width="50%"><strong>Tax ID:</strong></td>
  3822. <td class="cobll" bgcolor="#FFFFFF" align="left" width="50%"><input type="text" name="taxid" size="<?php print atb(21)?>" autocomplete="off" /></td>
  3823. </tr>
  3824. <tr>
  3825. <td class="cobhl" bgcolor="#EBEBEB" height="30" colspan="2" align="center"><font size="1">If you have provided a Tax ID then the following information is not necessary</font></td>
  3826. </tr>
  3827. <tr height="30">
  3828. <td class="cobhl" bgcolor="#EBEBEB" align="right" width="50%"><strong>Drivers License Number:</strong></td>
  3829. <td class="cobll" bgcolor="#FFFFFF" align="left" width="50%"><input type="text" name="licensenumber" size="<?php print atb(21)?>" autocomplete="off" /></td>
  3830. </tr>
  3831. <tr height="30">
  3832. <td class="cobhl" bgcolor="#EBEBEB" align="right" width="50%"><strong>Drivers License State:</strong></td>
  3833. <td class="cobll" bgcolor="#FFFFFF" align="left" width="50%"><select size="1" name="licensestate"><option value=""><?php print $xxPlsSel?></option><?php
  3834. $sSQL = "SELECT stateName,stateAbbrev FROM states WHERE stateEnabled=1 ORDER BY stateName";
  3835. $result = mysql_query($sSQL) or print(mysql_error());
  3836. while($rs = mysql_fetch_array($result)){
  3837. print '<option value="' . str_replace('"','&quot;',$rs["stateAbbrev"]) . '"';
  3838. print '>' . $rs["stateAbbrev"] . "</option>\n";
  3839. }
  3840. mysql_free_result($result); ?></select></td>
  3841. </tr>
  3842. <tr height="30">
  3843. <td class="cobhl" bgcolor="#EBEBEB" align="right" width="50%"><strong>Date Of Birth On License:</strong></td>
  3844. <td class="cobll" bgcolor="#FFFFFF" align="left" width="50%">
  3845. <select name="dldobmon" size="1">
  3846. <option value=""><?php print $xxMonth?></option>
  3847. <?php for($index=1; $index <= 12; $index++){ ?>
  3848. <option value="<?php print $index?>"><?php print date("M", mktime(1,0,0,$index,1,1990))?></option>
  3849. <?php } ?>
  3850. </select>
  3851. <select name="dldobday" size="1">
  3852. <option value="">Day</option>
  3853. <?php for($index=1; $index <= 31; $index++){ ?>
  3854. <option value="<?php print $index?>"><?php print $index?></option>
  3855. <?php } ?>
  3856. </select>
  3857. <select name="dldobyear" size="1">
  3858. <option value=""><?php print $xxYear?></option>
  3859. <?php $thisyear = date("Y");
  3860. for($index=$thisyear-100; $index <= $thisyear; $index++){ ?>
  3861. <option value="<?php print $index?>"><?php print $index?></option>
  3862. <?php } ?>
  3863. </select>
  3864. </td>
  3865. </tr>
  3866. <?php }
  3867. }
  3868. } ?>
  3869. <tr>
  3870. <td class="cobhl" bgcolor="#EBEBEB" height="30" colspan="2" align="center"><strong><?php print $xxMstClk?></strong></td>
  3871. </tr>
  3872. <tr>
  3873. <td class="cobll" bgcolor="#FFFFFF" colspan="2" align="center"><table width="100%" cellspacing="0" cellpadding="0" border="0">
  3874. <tr>
  3875. <td class="cobll" bgcolor="#FFFFFF" width="16" height="26" align="right" valign="bottom">&nbsp;</td>
  3876. <td class="cobll" bgcolor="#FFFFFF" width="100%" align="center"><input type="image" src="/lib/images/submit_order.gif" border="0" /></td>
  3877. <td class="cobll" bgcolor="#FFFFFF" width="16" height="26" align="right" valign="bottom"><img src="/lib/images/tablebr.gif" alt="" /></td>
  3878. </tr>
  3879. </table></td>
  3880. </tr>
  3881. </table>
  3882. </form>
  3883. <?php
  3884. } // success
  3885. }elseif(@$_POST["mode"]=="authorize"){
  3886. // COUPON MANAGEMENT ADDED by Chad 08/09/06
  3887. // Double check that all coupons are set to zero
  3888. for($j=0; $j<count($_SESSION['chads_coupons']); $j++) {
  3889. $cc_sql = "SELECT * FROM coupons WHERE cpnID = ".$_SESSION['chads_coupons'][$j]['cpnID']." AND cpnNumAvail = 1";
  3890. $cc_res = mysql_query($cc_sql) or print(mysql_error());
  3891. if(mysql_num_rows($cc_res) > 0) {
  3892. $sql2 = "UPDATE coupons SET cpnNumAvail = 0 WHERE cpnID = ".$_SESSION['chads_coupons'][$j]['cpnID'];
  3893. $res2 = mysql_query($sql2) or print(mysql_error());
  3894. }
  3895. }
  3896. // COUPON MANAGEMENT ENDED
  3897. $blockuser=checkuserblock("");
  3898. $ordID = mysql_real_escape_string(str_replace("'","",@$_POST["ordernumber"]));
  3899. $vsRESULT="x";
  3900. $vsRESPMSG=$vsAVSADDR=$vsAVSZIP=$vsTRANSID='';
  3901. $gobackplaces='-1';
  3902. if(@$_POST["method"]=="payflowpro"){
  3903. $sSQL = "SELECT payProvData1,payProvDemo,payProvMethod FROM payprovider WHERE payProvID=7";
  3904. $result = mysql_query($sSQL) or print(mysql_error());
  3905. $rs = mysql_fetch_assoc($result);
  3906. $vsdetails = $rs["payProvData1"];
  3907. $demomode=((int)$rs["payProvDemo"]==1);
  3908. $ppmethod = (int)$rs["payProvMethod"];
  3909. mysql_free_result($result);
  3910. if(is_null($vsdetails)) $vsdetails="";
  3911. $vsdetails = split("&", $vsdetails);
  3912. $vs1=@$vsdetails[0];
  3913. $vs2=@$vsdetails[1];
  3914. $vs3=@$vsdetails[2];
  3915. $vs4=@$vsdetails[3];
  3916. $sSQL = "SELECT ordZip,ordShipping,ordStateTax,ordCountryTax,ordHandling,ordTotal,ordDiscount,ordAddress,ordAddress2,ordAuthNumber FROM orders WHERE ordID='" . $ordID . "'";
  3917. $result = mysql_query($sSQL) or print(mysql_error());
  3918. $rs = mysql_fetch_assoc($result);
  3919. $vsAUTHCODE = $rs["ordAuthNumber"];
  3920. if(@$pathtopfpro==""){
  3921. $parmList = array( "TRXTYPE"=>($ppmethod==1 ? "A" : "S"),
  3922. "TENDER"=>"C",
  3923. "ZIP" => $rs["ordZip"],
  3924. "STREET" => $rs["ordAddress"],
  3925. "NAME" => @$_POST["cardname"],
  3926. "COMMENT1" => $ordID,
  3927. "ACCT" => @$_POST["ACCT"],
  3928. "PWD" => $vs4,
  3929. "USER" => $vs1,
  3930. "VENDOR" => $vs2,
  3931. "PARTNER" => $vs3,
  3932. "CVV2" => trim(@$_POST["CVV2"]),
  3933. "EXPDATE" => @$_POST["EXMON"] . substr(@$_POST["EXYEAR"], -2),
  3934. "AMT" => number_format(($rs["ordShipping"]+$rs["ordStateTax"]+$rs["ordCountryTax"]+$rs["ordTotal"]+$rs["ordHandling"])-$rs["ordDiscount"],2,'.','')
  3935. );
  3936. }else{
  3937. $parmList = "TRXTYPE=" . ($ppmethod==1 ? "A" : "S") . "&TENDER=C";
  3938. $parmList .= "&ZIP[" . strlen($rs["ordZip"]) . "]=" . $rs["ordZip"];
  3939. $parmList .= "&STREET[" . strlen($rs["ordAddress"]) . "]=" . $rs["ordAddress"];
  3940. if($rs["ordAddress2"] != "") $parmList .= ', ' . $rs["ordAddress2"];
  3941. $parmList .= "&NAME[" . strlen(@$_POST["cardname"]) . "]=" . @$_POST["cardname"];
  3942. $parmList .= "&COMMENT1=" . $ordID;
  3943. $parmList .= "&ACCT=" . @$_POST["ACCT"];
  3944. $parmList .= "&PWD=" . $vs4;
  3945. $parmList .= "&USER=" . $vs1;
  3946. $parmList .= "&VENDOR=" . $vs2;
  3947. $parmList .= "&PARTNER=" . $vs3;
  3948. $parmList .= "&CVV2=" . trim(@$_POST["CVV2"]);
  3949. $parmList .= "&EXPDATE=" . @$_POST["EXMON"] . substr(@$_POST["EXYEAR"], -2);
  3950. $parmList .= "&AMT=" . number_format(($rs["ordShipping"]+$rs["ordStateTax"]+$rs["ordCountryTax"]+$rs["ordTotal"]+$rs["ordHandling"])-$rs["ordDiscount"],2,'.','');
  3951. }
  3952. mysql_free_result($result);
  3953. function process_pfpro($str, $server, $port, $timeout){
  3954. global $pathtopfpro,$pathtopfprocert,$pathtopfprolib,$parmList;
  3955. if(@$pathtopfprocert!="")
  3956. putenv("PFPRO_CERT_PATH=$pathtopfprocert");
  3957. if(@$pathtopfpro=="COM"){
  3958. $objCOM = new COM("PFProCOMControl.PFProCOMControl.1");
  3959. $ctx1 = $objCOM->CreateContext($server, $port, $timeout, "", 0, "", "");
  3960. $pfret = $objCOM->SubmitTransaction($ctx1, $str, strlen($str));
  3961. $objCOM->DestroyContext($ctx1);
  3962. }elseif(@$pathtopfpro!=""){
  3963. if(! file_exists($pathtopfpro)) print "cannot find pfpro executable. Check \$pathtopfpro<br>";
  3964. if(@$pathtopfprolib!="")
  3965. putenv("LD_LIBRARY_PATH=$pathtopfprolib");
  3966. $sendstr = $pathtopfpro . ' ' . $server . ' ' . $port . ' "' . $str . '" ' . $timeout;
  3967. exec ($sendstr, $pfret, $retvar);
  3968. $pfret = implode("\n",$pfret);
  3969. }else{
  3970. $pfret = pfpro_process($parmList, $server);
  3971. }
  3972. return $pfret;
  3973. }
  3974. if($vsAUTHCODE==""){
  3975. if($vs3=="VSA")
  3976. if($demomode) $theurl = "payflow-test.verisign.com.au"; else $theurl = "payflow.verisign.com.au";
  3977. else
  3978. if($demomode) $theurl = "test-payflow.verisign.com"; else $theurl = "payflow.verisign.com";
  3979. $curString = process_pfpro($parmList, $theurl, 443, 30);
  3980. if(!is_array($curString)){
  3981. $curStringArr = array();
  3982. while(strlen($curString) != 0){
  3983. if(strpos($curString,"&")!==FALSE)
  3984. $varString = substr($curString, 0, strpos($curString , "&" ));
  3985. else
  3986. $varString = $curString;
  3987. $name = substr($varString, 0, strpos($varString, "=" ));
  3988. $curStringArr[$name] = substr($varString, (strlen($name)+1) - strlen($varString));
  3989. if(strlen($curString) != strlen($varString))
  3990. $curString = substr($curString, (strlen($varString)+1) - strlen($curString));
  3991. else
  3992. $curString = "";
  3993. }
  3994. $curString = $curStringArr;
  3995. }
  3996. $vsRESULT=$curString["RESULT"];
  3997. $vsPNREF=@$curString["PNREF"];
  3998. $vsRESPMSG=@$curString["RESPMSG"];
  3999. $vsAUTHCODE=@$curString["AUTHCODE"];
  4000. $vsAVSADDR=@$curString["AVSADDR"];
  4001. $vsAVSZIP=@$curString["AVSZIP"];
  4002. $vsIAVS=@$curString["IAVS"];
  4003. if($vsRESULT=="0"){
  4004. do_stock_management($ordID);
  4005. $sSQL="UPDATE cart SET cartCompleted=1 WHERE cartOrderID='" . $ordID . "'";
  4006. mysql_query($sSQL) or print(mysql_error());
  4007. //send to back order status
  4008. $orderStatus=3;
  4009. if(isAddInfo($ordID)) {
  4010. $orderStatus = 5;
  4011. }
  4012. if($_SESSION['isExtendShipping']) $orderStatus=4;
  4013. $sSQL="UPDATE orders SET ordStatus=".$orderStatus.",ordAuthNumber='" . mysql_real_escape_string($vsAVSADDR . $vsAVSZIP . "-" . $vsAUTHCODE) . "' WHERE ordID='" . $ordID . "'";
  4014. if(mysql_query($sSQL)) {
  4015. if(!setNewLocation( $orderStatus , $ordID )) print("Unable to record new location");
  4016. }else{
  4017. print(mysql_error());
  4018. }
  4019. }
  4020. }else{
  4021. $vsRESULT="0";
  4022. $vsRESPMSG="Approved";
  4023. if(strpos($vsAUTHCODE,"-") > 0) $vsAUTHCODE = substr($vsAUTHCODE, strpos($vsAUTHCODE,"-"));
  4024. }
  4025. }elseif(@$_POST["method"]=="authnetaim"){ // AUTHNET AIM
  4026. $sSQL = "SELECT payProvDemo,payProvData1,payProvData2,payProvMethod FROM payprovider WHERE payProvID=13";
  4027. $result = mysql_query($sSQL) or print(mysql_error());
  4028. $rs = mysql_fetch_array($result);
  4029. $demomode = ((int)$rs["payProvDemo"]==1);
  4030. $login = $rs["payProvData1"];
  4031. $trankey = $rs["payProvData2"];
  4032. if(@$secretword != ""){
  4033. $login = upsdecode($login, $secretword);
  4034. $trankey = upsdecode($trankey, $secretword);
  4035. }
  4036. $ppmethod = (int)$rs["payProvMethod"];
  4037. mysql_free_result($result);
  4038. $sSQL = "SELECT ordID,ordName,ordCity,ordState,ordCountry,ordPhone,ordHandling,ordZip,ordEmail,ordShipping,ordStateTax,ordCountryTax,ordTotal,ordDiscount,ordAddress,ordAddress2,ordIP,ordAuthNumber,ordShipName,ordShipAddress,ordShipAddress2,ordShipCity,ordShipState,ordShipCountry,ordShipZip,ord_cert_amt FROM orders WHERE ordID='" . $ordID . "'";
  4039. $result = mysql_query($sSQL) or print(mysql_error());
  4040. $rs = mysql_fetch_array($result);
  4041. mysql_free_result($result);
  4042. if(empty($rs["ordShipName"]) && empty($rs["ordShipAddress"])) {
  4043. $aName = explode(" ",$rs["ordName"]);
  4044. $an_ship_fname = $aName[0];
  4045. $an_ship_lname = $aName[1];
  4046. $an_ship_address = $rs["ordAddress"]." ".$rs["ordAddress2"];
  4047. $an_ship_city = $rs["ordCity"];
  4048. $an_ship_state = $rs["ordState"];
  4049. $an_ship_zip = $rs["ordZip"];
  4050. $an_ship_country = $rs["ordCountry"];
  4051. }else{
  4052. $aName = explode(" ",$rs["ordShipName"]);
  4053. $an_ship_fname = $aName[0];
  4054. $an_ship_lname = $aName[1];
  4055. $an_ship_address = $rs["ordShipAddress"]." ".$rs["ordShipAddress2"];
  4056. $an_ship_city = $rs["ordShipCity"];
  4057. $an_ship_state = $rs["ordShipState"];
  4058. $an_ship_zip = $rs["ordShipZip"];
  4059. $an_ship_country = $rs["ordShipCountry"];
  4060. }
  4061. $vsAUTHCODE = trim($rs["ordAuthNumber"]);
  4062. $parmList = 'x_version=3.1&x_delim_data=True&x_relay_response=False&x_delim_char=|&x_duplicate_window=15';
  4063. $parmList .= "&x_login=" . $login;
  4064. $parmList .= "&x_tran_key=" . $trankey;
  4065. $parmList .= "&x_cust_id=" . $rs["ordID"];
  4066. $parmList .= "&x_Invoice_Num=" . $rs["ordID"];
  4067. $parmList .= "&x_amount=" . number_format(($rs["ordShipping"]+$rs["ordStateTax"]+$rs["ordCountryTax"]+$rs["ordTotal"]+$rs["ordHandling"])-$rs["ordDiscount"]-$rs["ord_cert_amt"],2,'.','');
  4068. $parmList .= "&x_currency_code=" . $countryCurrency;
  4069. $parmList .= "&x_Description=" . urlencode(unstripslashes(@$_POST["description"]));
  4070. $parmList .= "&x_customer_ip=" . $_SERVER['REMOTE_ADDR'];
  4071. $parmList .= "&x_ship_to_first_name=" . $an_ship_fname;
  4072. $parmList .= "&x_ship_to_last_name=" . $an_ship_lname;
  4073. $parmList .= "&x_ship_to_address=" . $an_ship_address;
  4074. $parmList .= "&x_ship_to_city=" . $an_ship_city;
  4075. $parmList .= "&x_ship_to_state=" . $an_ship_state;
  4076. $parmList .= "&x_ship_to_zip=" . $an_ship_zip;
  4077. $parmList .= "&x_ship_to_country=" . $an_ship_country;
  4078. if(trim(@$_POST["accountnum"]) != ""){
  4079. $parmList .= "&x_method=ECHECK&x_echeck_type=WEB&x_recurring_billing=NO";
  4080. $parmList .= "&x_bank_acct_name=" . urlencode(trim(unstripslashes(@$_POST["accountname"])));
  4081. $parmList .= "&x_bank_acct_num=" . urlencode(trim(@$_POST["accountnum"]));
  4082. $parmList .= "&x_bank_name=" . urlencode(trim(unstripslashes(@$_POST["bankname"])));
  4083. $parmList .= "&x_bank_aba_code=" . urlencode(trim(@$_POST["routenumber"]));
  4084. $parmList .= "&x_bank_acct_type=" . urlencode(trim(@$_POST["accounttype"]));
  4085. $parmList .= "&x_type=AUTH_CAPTURE";
  4086. if(@$wellsfargo==true){
  4087. $parmList .= "&x_customer_organization_type=" . trim(@$_POST["orgtype"]);
  4088. if(trim(@$_POST["taxid"]) != ""){
  4089. $parmList .= "&x_customer_tax_id=" . urlencode(trim(@$_POST["taxid"]));
  4090. }else{
  4091. $parmList .= "&x_drivers_license_num=" . urlencode(trim(@$_POST["licensenumber"]));
  4092. $parmList .= "&x_drivers_license_state=" . urlencode(trim(@$_POST["licensestate"]));
  4093. $parmList .= "&x_drivers_license_dob=" . urlencode(trim(@$_POST["dldobyear"]) . "/" . trim(@$_POST["dldobmon"]) . "/" . trim(@$_POST["dldobday"]));
  4094. }
  4095. }
  4096. }else{
  4097. $parmList .= "&x_card_num=" . urlencode(@$_POST["ACCT"]);
  4098. $parmList .= "&x_exp_date=" . @$_POST["EXMON"] . @$_POST["EXYEAR"];
  4099. if(trim(@$_POST["CVV2"]) != "") $parmList .= "&x_card_code=" . trim(@$_POST["CVV2"]);
  4100. if($ppmethod==1) $parmList .= "&x_type=AUTH_ONLY"; else $parmList .= "&x_type=AUTH_CAPTURE";
  4101. }
  4102. $thename = trim(unstripslashes(@$_POST["cardname"]));
  4103. if($thename != ""){
  4104. if(strstr($thename," ")){
  4105. $namearr = split(" ",$thename,2);
  4106. $parmList .= "&x_first_name=" . urlencode($namearr[0]);
  4107. $parmList .= "&x_last_name=" . urlencode($namearr[1]);
  4108. }else
  4109. $parmList .= "&x_last_name=" . urlencode($thename);
  4110. }
  4111. $parmList .= "&x_address=" . urlencode($rs["ordAddress"]);
  4112. if($rs["ordAddress2"] != '') $parmList .= urlencode(', ' . $rs["ordAddress2"]);
  4113. $parmList .= "&x_city=" . urlencode($rs["ordCity"]);
  4114. $parmList .= "&x_state=" . urlencode($rs["ordState"]);
  4115. $parmList .= "&x_zip=" . urlencode($rs["ordZip"]);
  4116. $parmList .= "&x_country=" . urlencode($rs["ordCountry"]);
  4117. $parmList .= "&x_phone=" . urlencode($rs["ordPhone"]);
  4118. $parmList .= "&x_email=" . urlencode($rs["ordEmail"]);
  4119. $thename = trim($rs["ordShipName"]);
  4120. if($thename != "" || $rs["ordShipAddress"] != ""){
  4121. if($thename != ""){
  4122. if(strstr($thename," ")){
  4123. $namearr = split(" ",$thename,2);
  4124. $parmList .= "&x_ship_to_first_name=" . urlencode($namearr[0]);
  4125. $parmList .= "&x_ship_to_last_name=" . urlencode($namearr[1]);
  4126. }else
  4127. $parmList .= "&x_ship_to_last_name=" . urlencode($thename);
  4128. }
  4129. $parmList .= "&x_ship_to_address=" . urlencode($rs["ordShipAddress"]);
  4130. if($rs["ordShipAddress2"] != '') $parmList .= urlencode(', ' . $rs["ordShipAddress2"]);
  4131. $parmList .= "&x_ship_to_city=" . urlencode($rs["ordShipCity"]);
  4132. $parmList .= "&x_ship_to_state=" . urlencode($rs["ordShipState"]);
  4133. $parmList .= "&x_ship_to_zip=" . urlencode($rs["ordShipZip"]);
  4134. $parmList .= "&x_ship_to_country=" . urlencode($rs["ordShipCountry"]);
  4135. }
  4136. if(trim($rs["ordIP"]) != "") $parmList .= "&x_customer_ip=" . urlencode(trim($rs["ordIP"]));
  4137. if($demomode) $parmList .= "&x_test_request=TRUE";
  4138. if($vsAUTHCODE==""){
  4139. $success=true;
  4140. if($blockuser){
  4141. $success=FALSE;
  4142. }else{
  4143. if(@$pathtocurl != ""){
  4144. exec($pathtocurl . ' --data-binary \'' . str_replace("'","\'",$parmList) . '\' https://secure.authorize.net/gateway/transact.dll', $res, $retvar);
  4145. $res = implode("\n",$res);
  4146. }else{
  4147. if (!$ch = curl_init()) {
  4148. $vsRESPMSG = "cURL package not installed in PHP";
  4149. $success=false;
  4150. }else{
  4151. curl_setopt($ch, CURLOPT_URL,'https://secure.authorize.net/gateway/transact.dll');
  4152. curl_setopt($ch, CURLOPT_POST, 1);
  4153. curl_setopt($ch, CURLOPT_HEADER, 0);
  4154. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  4155. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  4156. curl_setopt($ch, CURLOPT_POSTFIELDS, $parmList);
  4157. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  4158. if(@$curlproxy!=''){
  4159. curl_setopt($ch, CURLOPT_PROXY, $curlproxy);
  4160. }
  4161. $res = curl_exec($ch);
  4162. if(curl_error($ch) != ""){
  4163. $vsRESULT="x";
  4164. $vsRESPMSG= "Error with cURL installation: " . curl_error($ch) . "<br />";
  4165. $success=false;
  4166. }else{
  4167. curl_close($ch);
  4168. }
  4169. }
  4170. }
  4171. }
  4172. if($success){
  4173. $vsRAW = $res;
  4174. $varString = split('\|', $res);
  4175. $vsRESULT=$varString[0];
  4176. $vsRESULT2=$varString[0];
  4177. $vsERRCODE=$varString[2];
  4178. $vsRESPMSG=$varString[3];
  4179. // SEE IF AUTH.NET DETECTED THE ORDER AS FRAUDULENT
  4180. if(ereg("^25[0-4]$",$vsERRCODE)) {
  4181. $headers = str_replace('%from%',$sEmail,$customheaders);
  4182. $headers = str_replace('%to%',$sEmail,$headers);
  4183. mail('kris@reminderband.com,karen@reminderband.com', 'ifrogz fraudulent order', $ordID, $headers);
  4184. }
  4185. if($vsERRCODE != "1" && $demomode) {
  4186. $vsRESPMSG = $vsERRCODE . " - " . $vsRESPMSG;
  4187. }
  4188. $vsAUTHCODE=$varString[4];
  4189. $vsAVSADDR=$varString[5];
  4190. $vsTRANSID=$varString[6];
  4191. $vsDESCRIPTION=$varString[8];
  4192. $vsAMOUNT=$varString[9];
  4193. $vsTYPE=$varString[11];
  4194. $vsCVV2=$varString[38];
  4195. if((int)$vsRESULT==1){
  4196. $vsRESULT="0"; // Keep in sync with Payflow Pro
  4197. do_stock_management($ordID);
  4198. mysql_query("UPDATE cart SET cartCompleted=1 WHERE cartOrderID='" . $ordID . "'") or print(mysql_error());
  4199. //send to back order status
  4200. //echo "isExtendShipping".$_SESSION['isExtendShipping'];
  4201. $orderStatus=3;
  4202. if(isAddInfo($ordID)) {
  4203. $orderStatus = 5;
  4204. }
  4205. if($_SESSION['isExtendShipping']) $orderStatus=4;
  4206. if(mysql_query("UPDATE orders SET ordStatus=".$orderStatus.",ordAuthNumber='" . mysql_real_escape_string($vsAVSADDR . $vsCVV2 . "-" . $vsAUTHCODE) . "',ordTransID='" . mysql_real_escape_string($vsTRANSID) . "' WHERE ordID='" . $ordID . "'")) {
  4207. if(!setNewLocation( $orderStatus , $ordID )) print("Unable to record new location");
  4208. }else{
  4209. print(mysql_error());
  4210. }
  4211. // ADDED Apr20 by Chad
  4212. // STORE THE TYPE OF CREDIT CARD
  4213. $cc_type = getCCType($_POST["ACCT"]);
  4214. $qry = "UPDATE orders SET ordCCType = '$cc_type' WHERE ordID='" . $ordID . "'";
  4215. $res = mysql_query($qry) or print(mysql_error());
  4216. // ADD ENDED
  4217. // ADDED Mar30 06 by Chad
  4218. // RECORD TRANSACTION
  4219. include(APPPATH.'views/pages/admin/cartmisc.php');
  4220. $now = date("Y-m-d H:i:s");
  4221. $cc_exp_date = $_POST["EXMON"] . $_POST["EXYEAR"];
  4222. $qry = "INSERT INTO transactions ( txn , ordID , amt , date_received , type , note , auth_net_status , auth_net_raw , cc_num , cc_type , cc_exp_date )
  4223. VALUES ( '$vsTRANSID' , '$ordID' , $vsAMOUNT , '$now' , '$vsTYPE' , '$vsDESCRIPTION' , '$vsRESULT2' , '".mysql_real_escape_string($vsRAW)."' , '".mysql_real_escape_string(Encrypt(substr($_POST["ACCT"], -4),$cart_misc))."' , '$cc_type' , '".mysql_real_escape_string(Encrypt($cc_exp_date,$cart_misc))."' )";
  4224. $res = mysql_query($qry) or print(mysql_error());
  4225. // ADD ENDED
  4226. // ADDED July 11, 2006 By Blake
  4227. // Add order to ws_sales table
  4228. if(@$_SESSION["clientUser"] != ""){
  4229. if(($_SESSION["clientActions"] & 8) == 8){
  4230. addWSSalesOrder($_SESSION['custID'],$ordID);
  4231. }
  4232. }
  4233. // ADD ENDED
  4234. }
  4235. if((int)$vsRESULT==27) {
  4236. $gobackplaces='-2';
  4237. // Record the error in the DB
  4238. //$qry = "UPDATE orders SET ordPmtMessage = '$vsRESPMSG' WHERE ordSessionID = '".mysql_real_escape_string($thesessionid)."'";
  4239. //$res = @mysql_query($qry);
  4240. }
  4241. }
  4242. }else{
  4243. $vsRESULT="0";
  4244. $vsRESPMSG="This transaction has been approved.";
  4245. $pos = strpos($vsAUTHCODE, "-");
  4246. if (! ($pos === false))
  4247. $vsAUTHCODE = substr($vsAUTHCODE, $pos + 1);
  4248. }
  4249. }elseif(@$_POST["method"]=="paypalpro"){
  4250. @set_time_limit(120);
  4251. $sSQL = "SELECT payProvDemo,payProvData1,payProvData2,payProvMethod FROM payprovider WHERE payProvEnabled=1 AND payProvID=18"; // Check for PayPal Payment Pro
  4252. $result = mysql_query($sSQL) or print(mysql_error());
  4253. if($rs = mysql_fetch_assoc($result)){
  4254. $demomode = ((int)$rs["payProvDemo"]==1);
  4255. $username = trim($rs["payProvData1"]);
  4256. $ppmethod = (int)$rs["payProvMethod"];
  4257. $data2arr = split("&",trim($rs["payProvData2"]));
  4258. $password=urldecode(@$data2arr[0]);
  4259. $sslcertpath=urldecode(@$data2arr[1]);
  4260. }
  4261. mysql_free_result($result);
  4262. $sSQL = "SELECT ordID,ordName,ordCity,ordState,ordCountry,ordPhone,ordHandling,ordZip,ordEmail,ordShipping,ordStateTax,ordCountryTax,ordTotal,ordDiscount,ordAddress,ordAddress2,ordIP,ordAuthNumber,ordShipName,ordShipAddress,ordShipAddress2,ordShipCity,ordShipState,ordShipCountry,ordShipZip FROM orders WHERE ordID='" . $ordID . "'";
  4263. $result = mysql_query($sSQL) or print(mysql_error());
  4264. $rs = mysql_fetch_array($result);
  4265. mysql_free_result($result);
  4266. $sSQL = "SELECT countryCode FROM countries WHERE countryName='" . mysql_real_escape_string($rs["ordCountry"]) . "'";
  4267. $result = mysql_query($sSQL) or print(mysql_error());
  4268. if($rs2 = mysql_fetch_array($result)){
  4269. $countryCode = $rs2["countryCode"];
  4270. }
  4271. mysql_free_result($result);
  4272. $sSQL = "SELECT countryCode FROM countries WHERE countryName='" . mysql_real_escape_string($rs["ordShipCountry"]) . "'";
  4273. $result = mysql_query($sSQL) or print(mysql_error());
  4274. if($rs2 = mysql_fetch_array($result)){
  4275. $shipCountryCode = $rs2["countryCode"];
  4276. }else
  4277. $shipCountryCode = '';
  4278. mysql_free_result($result);
  4279. if($countryCode == 'US' || $countryCode == 'CA'){
  4280. $sSQL = "SELECT stateAbbrev FROM states WHERE stateAbbrev='" . mysql_real_escape_string($rs["ordState"]) . "'";
  4281. $result = mysql_query($sSQL) or print(mysql_error());
  4282. if($rs2 = mysql_fetch_array($result)) $rs["ordState"]=$rs2["stateAbbrev"];
  4283. mysql_free_result($result);
  4284. }
  4285. if($shipCountryCode == 'US' || $shipCountryCode == 'CA'){
  4286. $sSQL = "SELECT stateAbbrev FROM states WHERE stateAbbrev='" . mysql_real_escape_string($rs["ordShipState"]) . "'";
  4287. $result = mysql_query($sSQL) or print(mysql_error());
  4288. if($rs2 = mysql_fetch_array($result)) $rs["ordShipState"]=$rs2["stateAbbrev"];
  4289. mysql_free_result($result);
  4290. }
  4291. $vsAUTHCODE = trim($rs["ordAuthNumber"]);
  4292. $thename = unstripslashes(trim(@$_POST["cardname"]));
  4293. if(strstr($thename," ")){
  4294. $namearr = split(" ",$thename,2);
  4295. $firstname = $namearr[0];
  4296. $lastname = $namearr[1];
  4297. }else{
  4298. $firstname = '';
  4299. $lastname = $thename;
  4300. }
  4301. $cardnum = preg_replace('/\s+/', '', trim(@$_POST["ACCT"]));
  4302. $cartype = "Visa";
  4303. if(substr($cardnum, 0, 1)=="5")
  4304. $cartype="MasterCard";
  4305. elseif(substr($cardnum, 0, 1)=="6")
  4306. $cartype="Discover";
  4307. elseif(substr($cardnum, 0, 1)=="3")
  4308. $cartype="Amex";
  4309. $sXML = ppsoapheader($username, $password) .
  4310. ' <soap:Body><DoDirectPaymentReq xmlns="urn:ebay:api:PayPalAPI">' .
  4311. ' <DoDirectPaymentRequest><Version xmlns="urn:ebay:apis:eBLBaseComponents">1.00</Version>' .
  4312. ' <DoDirectPaymentRequestDetails xmlns="urn:ebay:apis:eBLBaseComponents">' .
  4313. ' <PaymentAction>' . ($ppmethod==1?'Authorization':'Sale') . '</PaymentAction>' .
  4314. ' <PaymentDetails>' .
  4315. ' <OrderTotal currencyID="' . $countryCurrency . '">' . number_format(($rs["ordShipping"]+$rs["ordStateTax"]+$rs["ordCountryTax"]+$rs["ordTotal"]+$rs["ordHandling"])-$rs["ordDiscount"],2,'.','') . '</OrderTotal>' .
  4316. ' <ButtonSource>ecommercetemplates.php.ecommplus</ButtonSource>';
  4317. if(trim($rs["ordShipAddress"]) != '')
  4318. $sXML .= '<ShipToAddress><Name>' . vrxmlencode($rs["ordShipName"]) . '</Name><Street1>' . vrxmlencode($rs["ordShipAddress"]) . '</Street1><Street2>' . vrxmlencode($rs["ordShipAddress2"]) . '</Street2><CityName>' . $rs["ordShipCity"] . '</CityName><StateOrProvince>' . $rs["ordShipState"] . '</StateOrProvince><Country>' . $shipCountryCode . '</Country><PostalCode>' . $rs["ordShipZip"] . '</PostalCode></ShipToAddress>';
  4319. else
  4320. $sXML .= '<ShipToAddress><Name>' . vrxmlencode($rs["ordName"]) . '</Name><Street1>' . vrxmlencode($rs["ordAddress"]) . '</Street1><Street2>' . vrxmlencode($rs["ordAddress2"]) . '</Street2><CityName>' . $rs["ordCity"] . '</CityName><StateOrProvince>' . $rs["ordState"] . '</StateOrProvince><Country>' . $countryCode . '</Country><PostalCode>' . $rs["ordZip"] . '</PostalCode></ShipToAddress>';
  4321. $sXML .= ' </PaymentDetails>' .
  4322. ' <CreditCard>' .
  4323. ' <CreditCardType>' . $cartype . '</CreditCardType>' .
  4324. ' <CreditCardNumber>' . vrxmlencode($cardnum) . '</CreditCardNumber>' .
  4325. ' <ExpMonth>' . @$_POST["EXMON"] . '</ExpMonth><ExpYear>' . @$_POST["EXYEAR"] . '</ExpYear>' .
  4326. ' <CardOwner>' .
  4327. ' <Payer>' . vrxmlencode($rs["ordEmail"]) . '</Payer>' .
  4328. ' <PayerName><FirstName>' . vrxmlencode($firstname) . '</FirstName><LastName>' . vrxmlencode($lastname) . '</LastName></PayerName>' .
  4329. ' <PayerCountry>' . $countryCode . '</PayerCountry>' .
  4330. ' <Address><Street1>' . vrxmlencode($rs["ordAddress"]) . '</Street1><Street2>' . vrxmlencode($rs["ordAddress2"]) . '</Street2><CityName>' . $rs["ordCity"] . '</CityName><StateOrProvince>' . $rs["ordState"] . '</StateOrProvince><Country>' . $countryCode . '</Country><PostalCode>' . $rs["ordZip"] . '</PostalCode></Address>' .
  4331. ' </CardOwner>' .
  4332. ' <CVV2>' . trim(@$_POST["CVV2"]) . '</CVV2>' .
  4333. ' </CreditCard>' .
  4334. ' <IPAddress>' . trim($rs["ordIP"]) . '</IPAddress><MerchantSessionId>' . $rs["ordID"] . '</MerchantSessionId>' .
  4335. ' </DoDirectPaymentRequestDetails>' .
  4336. ' </DoDirectPaymentRequest></DoDirectPaymentReq></soap:Body></soap:Envelope>';
  4337. if($demomode) $sandbox = ".sandbox"; else $sandbox = "";
  4338. $vsRESULT="-1";
  4339. if($vsAUTHCODE==""){
  4340. if($blockuser)
  4341. $success=FALSE;
  4342. else
  4343. $success = callcurlfunction('https://api' . $sandbox . '.paypal.com/2.0/', $sXML, $res, $sslcertpath, $vsRESPMSG, TRUE);
  4344. if($success){
  4345. $xmlDoc = new vrXMLDoc($res);
  4346. $vsAUTHCODE="";
  4347. $vsERRCODE="";
  4348. $vsRESPMSG="";
  4349. $vsAVSADDR="";
  4350. $vsTRANSID="";
  4351. $vsCVV2="";
  4352. $nodeList = $xmlDoc->nodeList->childNodes[0];
  4353. for($i = 0; $i < $nodeList->length; $i++){
  4354. if($nodeList->nodeName[$i]=="SOAP-ENV:Body"){
  4355. $e = $nodeList->childNodes[$i];
  4356. for($j = 0; $j < $e->length; $j++){
  4357. if($e->nodeName[$j] == "DoDirectPaymentResponse"){
  4358. $ee = $e->childNodes[$j];
  4359. for($jj = 0; $jj < $ee->length; $jj++){
  4360. if($ee->nodeName[$jj] == "Ack"){
  4361. if($ee->nodeValue[$jj]=="Success"){
  4362. $vsRESULT=1;
  4363. $vsRESPMSG = $ee->nodeValue[$jj];
  4364. }
  4365. }elseif($ee->nodeName[$jj] == "TransactionID"){
  4366. $vsAUTHCODE=$ee->nodeValue[$jj];
  4367. }elseif($ee->nodeName[$jj] == "AVSCode"){
  4368. $vsAVSADDR=$ee->nodeValue[$jj];
  4369. }elseif($ee->nodeName[$jj] == "CVV2Code"){
  4370. $vsCVV2=$ee->nodeValue[$jj];
  4371. }elseif($ee->nodeName[$jj] == "Errors"){
  4372. $ff = $ee->childNodes[$jj];
  4373. for($kk = 0; $kk < $ff->length; $kk++){
  4374. if($ff->nodeName[$kk] == "ShortMessage"){
  4375. //$vsRESPMSG=$ff->nodeValue[$kk].'<br>'.$vsRESPMSG;
  4376. }elseif($ff->nodeName[$kk] == "LongMessage"){
  4377. $vsRESPMSG.=$ff->nodeValue[$kk];
  4378. }elseif($ff->nodeName[$kk] == "ErrorCode"){
  4379. $vsERRCODE=$ff->nodeValue[$kk];
  4380. }
  4381. }
  4382. }
  4383. }
  4384. }
  4385. }
  4386. }
  4387. }
  4388. if((int)$vsRESULT==1){
  4389. $vsRESULT="0"; // Keep in sync with Payflow Pro
  4390. do_stock_management($ordID);
  4391. $sSQL="UPDATE cart SET cartCompleted=1 WHERE cartOrderID='" . $ordID . "'";
  4392. mysql_query($sSQL) or print(mysql_error());
  4393. //send to back order status
  4394. $orderStatus=3;
  4395. if(isAddInfo($ordID)) {
  4396. $orderStatus = 5;
  4397. }
  4398. if(!$_SESSION['isExtendShipping']) $orderStatus=4;
  4399. $sSQL="UPDATE orders SET ordStatus=".$orderStatus.",ordAuthNumber='" . mysql_real_escape_string($vsAVSADDR . $vsCVV2 . "-" . $vsAUTHCODE) . "' WHERE ordID='" . $ordID . "'";
  4400. if(mysql_query($sSQL)) {
  4401. if(!setNewLocation( $orderStatus , $ordID )) print("Unable to record new location");
  4402. }else{
  4403. print(mysql_error());
  4404. }
  4405. }
  4406. }
  4407. }else{
  4408. $vsRESULT="0";
  4409. $vsRESPMSG="This transaction has been approved.";
  4410. $pos = strpos($vsAUTHCODE, "-");
  4411. if (! ($pos === false))
  4412. $vsAUTHCODE = substr($vsAUTHCODE, $pos + 1);
  4413. }
  4414. }
  4415. ?> <div id="cart_nav"><img src="/lib/images/new_images/subnav_gray_13.gif" alt="View Order" /><img src="/lib/images/new_images/subnav_gray_15.gif" alt="Customer Info" /><img src="/lib/images/new_images/subnav_gray_17.gif" alt="Final Review" /><img src="/lib/images/new_images/subnav_green_19.gif" alt="Confirmation" /><img src="/lib/images/new_images/subnav_gray_21.gif" alt="View Receipt" /></div>
  4416. <table class="cobtbl" width="<?php print $maintablewidth?>" border="0" bordercolor="#B1B1B1" cellspacing="1" cellpadding="3" bgcolor="#B1B1B1">
  4417. <?php if($vsRESULT=="0"){ ?>
  4418. <tr height="30">
  4419. <td class="cobhl" bgcolor="#EBEBEB" align="center" colspan="2"><strong><?php print $xxTnxOrd?></strong></td>
  4420. </tr>
  4421. <tr height="30">
  4422. <td class="cobhl" bgcolor="#EBEBEB" align="right" width="50%"><strong><?php print $xxTrnRes?>:</strong></td>
  4423. <td class="cobll" bgcolor="#FFFFFF" width="50%"><strong><?php print $vsRESPMSG?></strong></td>
  4424. </tr>
  4425. <tr height="30">
  4426. <td class="cobhl" bgcolor="#EBEBEB" align="right" width="50%"><strong><?php print $xxOrdNum?>:</strong></td>
  4427. <td class="cobll" bgcolor="#FFFFFF" width="50%"><strong><?php print $ordID?></strong></td>
  4428. </tr>
  4429. <tr height="30">
  4430. <td class="cobhl" bgcolor="#EBEBEB" align="right" width="50%"><strong><?php print $xxAutCod?>:</strong></td>
  4431. <td class="cobll" bgcolor="#FFFFFF" width="50%"><strong><?php print $vsAUTHCODE?></strong></td>
  4432. </tr>
  4433. <tr height="30">
  4434. <td class="cobll" bgcolor="#FFFFFF" colspan="2">
  4435. <table width="100%" cellspacing="0" cellpadding="0" border="0">
  4436. <tr>
  4437. <td width="16" height="26" align="right" valign="bottom">&nbsp;</td>
  4438. <td class="cobll" bgcolor="#FFFFFF" width="100%" align="center">&nbsp;<br />
  4439. <?
  4440. // splits the cart page into different funnels
  4441. $google_tracker="/cart/complete.php";
  4442. // end
  4443. ?>
  4444. <form method="post" action="thanks.php<?php $_SESSION[hidden_id]=$ordID;?>" name="checkoutform">
  4445. <input type="hidden" name="xxpreauth" value="<?php print $ordID?>" />
  4446. <input type="image" src="/lib/images/complete_order.gif" name="submit" border="0" /><br />&nbsp;
  4447. </form>
  4448. </td>
  4449. <td width="16" height="26" align="right" valign="bottom"><img src="/lib/images/tablebr.gif" alt="" /></td>
  4450. </tr>
  4451. </table>
  4452. </td>
  4453. </tr>
  4454. <?php if(@$forcesubmit==TRUE){
  4455. if(@$forcesubmittimeout=="") $forcesubmittimeout=5000;
  4456. print '<script language="JavaScript" type="text/javascript">setTimeout("document.checkoutform.submit()",'.$forcesubmittimeout.');</script>'."\r\n";
  4457. }
  4458. // Added June 2 2006 By Blake
  4459. //removes uploaded images for custom screenz
  4460. deleteUploadedImages();
  4461. //end
  4462. // Added Dec 21 2006 By Blake
  4463. //split orders
  4464. $_SESSION['neworderID']=splitOrders($ordID);
  4465. //end
  4466. }else{ ?>
  4467. <tr height="30">
  4468. <td class="cobhl" bgcolor="#EBEBEB" align="center" colspan="2"><strong><?php print $xxSorTrn?></strong></td>
  4469. </tr>
  4470. <tr height="30">
  4471. <td class="cobhl" bgcolor="#EBEBEB" align="right" width="50%"><strong><?php print $xxTrnRes?>:</strong></td>
  4472. <td class="cobll" bgcolor="#FFFFFF" width="50%"><strong><?php print $vsRESPMSG?></strong></td>
  4473. </tr>
  4474. <tr height="30">
  4475. <td class="cobll" bgcolor="#FFFFFF" colspan="2">
  4476. <table width="100%" cellspacing="0" cellpadding="0" border="0">
  4477. <tr>
  4478. <td width="16" height="26" align="right" valign="bottom">&nbsp;</td>
  4479. <td class="cobll" bgcolor="#FFFFFF" width="100%" align="center">&nbsp;<br />
  4480. <form method="post" action="thanks.php" name="checkoutform">
  4481. <input type="hidden" name="xxpreauth" value="<?php print $ordID?>" />
  4482. <input type="button" value="<?php print $xxGoBack?>" onclick="javascript:history.go(<?php print $gobackplaces?>)" /><br />&nbsp;
  4483. </form>
  4484. </td>
  4485. <td width="16" height="26" align="right" valign="bottom"><img src="/lib/images/tablebr.gif" alt="" /></td>
  4486. </tr>
  4487. </table>
  4488. </td>
  4489. </tr>
  4490. <?php } ?>
  4491. </table>
  4492. <?php
  4493. }elseif(@$_GET["token"] == '' && @$_POST["mode"] != "paypalexpress1" && $cartisincluded != TRUE){
  4494. $requiressl = FALSE;
  4495. if(@$pathtossl == ''){
  4496. $sSQL = "SELECT payProvID FROM payprovider WHERE payProvEnabled=1 AND (payProvID IN (7,10,12,13,18) OR (payProvID=16 AND payProvData2='1'))"; // All the ones that require SSL
  4497. $result = mysql_query($sSQL) or print(mysql_error());
  4498. if(mysql_num_rows($result) > 0) $requiressl = TRUE;
  4499. mysql_free_result($result);
  4500. }
  4501. if($requiressl || @$pathtossl != ''){
  4502. if(@$pathtossl != ''){
  4503. if(substr($pathtossl,-1) != '/') $pathtossl .= '/';
  4504. $cartpath = $pathtossl . 'cart.php';
  4505. }else{
  4506. //$cartpath = str_replace('http:','https:',$storeurl) . 'cart.php';
  4507. $cartpath = 'cart.php';
  4508. }
  4509. }else{
  4510. $cartpath='cart.php';
  4511. }
  4512. $addextrarows=0;
  4513. $wantstateselector=FALSE;
  4514. $wantcountryselector=FALSE;
  4515. $wantzipselector=FALSE;
  4516. $wantshipppingmethod=FALSE;
  4517. $wantcouponcode=FALSE;
  4518. if(@$estimateshipping==TRUE){
  4519. $addextrarows=1;
  4520. if($shipType==2 || $shipType==5){ // weight / price based
  4521. $wantcountryselector=TRUE;
  4522. $wantshipppingmethod=TRUE;
  4523. $wantcouponcode=TRUE;
  4524. if($splitUSZones){
  4525. $addextrarows=3;
  4526. $wantstateselector=TRUE;
  4527. }else
  4528. $addextrarows=2;
  4529. }elseif($shipType==3 || $shipType==4 || $shipType==6){
  4530. $addextrarows=3;
  4531. $wantzipselector=TRUE;
  4532. $wantcountryselector=TRUE;
  4533. $wantshipppingmethod=TRUE;
  4534. $wantcouponcode=TRUE;
  4535. }
  4536. $shiphomecountry=TRUE;
  4537. if(@$_POST["state"] != ""){
  4538. $shipstate = unstripslashes(@$_POST["state"]);
  4539. $_SESSION["state"] = unstripslashes(@$_POST["state"]);
  4540. }elseif(@$_SESSION["state"] != "")
  4541. $shipstate = $_SESSION["state"];
  4542. else
  4543. $shipstate = $defaultshipstate;
  4544. if(@$_POST["zip"] != ""){
  4545. $destZip = trim(unstripslashes(@$_POST["zip"]));
  4546. $_SESSION["zip"] = trim(unstripslashes(@$_POST["zip"]));
  4547. }elseif(@$_SESSION["zip"] != "")
  4548. $destZip = $_SESSION["zip"];
  4549. else
  4550. $destZip = $origZip;
  4551. if(@$_POST["country"] != ""){
  4552. $shipcountry = unstripslashes(@$_POST["country"]);
  4553. $_SESSION["country"] = unstripslashes(@$_POST["country"]);
  4554. if(trim(@$_POST["state"])=='') $shipstate="";
  4555. }elseif(@$_SESSION["country"] != "")
  4556. $shipcountry = $_SESSION["country"];
  4557. else{
  4558. $shipCountryCode = $origCountryCode;
  4559. $shipcountry = $origCountry;
  4560. }
  4561. $sSQL = "SELECT countryID,countryTax,countryCode,countryFreeShip,countryOrder FROM countries WHERE countryName='" . mysql_real_escape_string($shipcountry) . "'";
  4562. $result = mysql_query($sSQL) or print(mysql_error());
  4563. if($rs = mysql_fetch_array($result)){
  4564. $countryTaxRate = $rs["countryTax"];
  4565. $shipCountryID = $rs["countryID"];
  4566. $shipCountryCode = $rs["countryCode"];
  4567. $freeshipapplies = ($rs["countryFreeShip"]==1);
  4568. $shiphomecountry = ($rs["countryOrder"]==2);
  4569. }
  4570. mysql_free_result($result);
  4571. //if(@$_SESSION["xsshipping"] == "")
  4572. initshippingmethods();
  4573. $_SESSION['thisshipcountry']=$shipcountry;
  4574. }
  4575. checkRelatedDiscounts();
  4576. $sSQL = "SELECT cartID,cartProdID,cartProdName,cartProdPrice,cartOrderID,cartQuantity,pImage,pWeight,pShipping,pShipping2,pExemptions,pSection,pDims,topSection,isSet FROM cart LEFT JOIN products ON cart.cartProdID=products.pID LEFT OUTER JOIN sections ON products.pSection=sections.sectionID WHERE cartCompleted=0 AND cartSessionID='" . session_id() . "' ORDER BY cartID";
  4577. $result_check=mysql_query($sSQL) or print(mysql_error());
  4578. $_SESSION['isExtendShipping']=FALSE;
  4579. $hasset=FALSE;
  4580. $totalgoods=0;
  4581. while($alldata_check=mysql_fetch_assoc($result_check)){
  4582. $totalgoods += ($alldata_check["cartProdPrice"]*(int)$alldata_check["cartQuantity"]);
  4583. $prod=$alldata_check['cartProdID'];
  4584. $ordernum=$alldata_check['cartOrderID'];
  4585. //getRelatedProducts($prod,$ordernum);
  4586. if($alldata_check['isSet']=='yes') $hasset=TRUE;
  4587. $sSQL = "SELECT coOptGroup,coCartOption,coPriceDiff,coWeightDiff,coExtendShipping FROM cartoptions WHERE coCartID=" . $alldata_check["cartID"] . " ORDER BY coID";
  4588. $opts_check = mysql_query($sSQL) or print(mysql_error());
  4589. while($rs_check=mysql_fetch_assoc($opts_check)){
  4590. if($rs_check['coExtendShipping']>0){
  4591. $_SESSION['isExtendShipping']=TRUE;
  4592. }
  4593. $totalgoods += ($rs_check["coPriceDiff"]*(int)$alldata_check["cartQuantity"]);
  4594. }
  4595. }
  4596. mysql_free_result($result_check);
  4597. //check for added products and display message if there is any
  4598. $sSQL = "SELECT cartAddProd FROM cart WHERE cartAddProd=1 AND cartCompleted=0 AND cartSessionID='" . session_id() . "' ORDER BY cartID";
  4599. $result = mysql_query($sSQL) or print(mysql_error());
  4600. $num_added_prods=mysql_num_rows($result);
  4601. mysql_free_result($result);
  4602. //
  4603. if(@$_POST["cpncode"]=='' && $_SESSION['os']=='') $coupon_code=FALSE;
  4604. elseif($_SESSION['os']!='') $coupon_code=$_SESSION['os'];
  4605. else $coupon_code=@$_POST["cpncode"];
  4606. calculatediscounts($totalgoods, false, $coupon_code);
  4607. if($totaldiscounts > $totalgoods) $totaldiscounts = $totalgoods;
  4608. if($totaldiscounts==0)
  4609. $_SESSION["discounts"] = "";
  4610. else{
  4611. $_SESSION["discounts"] = $totaldiscounts;
  4612. checkRelatedDiscounts();
  4613. $addextrarows++;
  4614. $glicpnmessage = substr($cpnmessage, 6, -6);
  4615. //$googlelineitems .= '<item><merchant-private-item-data><discountflag>true</discountflag></merchant-private-item-data><item-name>' . xmlencodecharref(strip_tags($xxAppDs)) . '</item-name><item-description>' . xmlencodecharref(strip_tags(str_replace('<br />', ' - ', $glicpnmessage))) . '</item-description><unit-price currency="' . $countryCurrency . '">-' . number_format($totaldiscounts,2,'.','') . '</unit-price><quantity>1</quantity></item>';
  4616. }
  4617. $alldata="";
  4618. $sSQL = "SELECT cartID,cartProdID,cartProdName,cartProdPrice,cartQuantity,cartAddProd,pImage,pWeight,pShipping,pShipping2,pExemptions,pSection,pDims,topSection,isSet,pDescription,pDropship,pCat FROM cart LEFT JOIN products ON cart.cartProdID=products.pID LEFT OUTER JOIN sections ON products.pSection=sections.sectionID WHERE cartCompleted=0 AND cartSessionID='" . session_id() . "' ORDER BY cartID";
  4619. $result = mysql_query($sSQL) or print(mysql_error());
  4620. ?>
  4621. <div id="cart_nav"><img src="/lib/images/new_images/subnav_green_13.gif" alt="View Order"><img src="/lib/images/new_images/subnav_gray_15.gif" alt="Customer Info"><img src="/lib/images/new_images/subnav_gray_17.gif" alt="Final Review"><img src="/lib/images/new_images/subnav_gray_19.gif" alt="Confirmation"><img src="/lib/images/new_images/subnav_gray_21.gif" alt="View Receipt"></div>
  4622. <div id="related">
  4623. <?
  4624. include(DOCROOT.'ectmods/crosssale/inc/incxsale.php'); ?></div>
  4625. <script type="text/javascript" defer="defer">
  4626. <!--
  4627. function shippingJump() {
  4628. var shippingest = $('shippingest').value;
  4629. if(shippingest != '') {
  4630. var aShip = shippingest.split("|");
  4631. var method = aShip[1];
  4632. }else{
  4633. var method = '';
  4634. }
  4635. /*if($('org_shippingest').value!=aShip[0]) {
  4636. $('change_shippingest').value=1;
  4637. }else{
  4638. $('change_shippingest').value="";
  4639. $('shp_method').value = "";
  4640. }*/
  4641. if(method=='') {
  4642. $('shp_method').value = '';
  4643. }else{
  4644. $('shp_method').value = method;
  4645. }
  4646. document.checkoutform.submit();
  4647. }
  4648. -->
  4649. </script>
  4650. <?php
  4651. //showarray($_POST);
  4652. //showarray($_SESSION);
  4653. // Temporarily Added 2008-04-21
  4654. $tmpMsg = "";
  4655. /*$tmpsql = "SELECT * FROM cart WHERE binary cartProdID LIKE '%U%' AND cartSessionID = '" . session_id() . "'";
  4656. $tmpres = mysql_query($tmpsql);
  4657. if ($tmpres) {
  4658. if (mysql_num_rows($tmpres) > 0) {
  4659. $tmpMsg = "All iPod Classic screenz are on backorder at the moment.";
  4660. }
  4661. }*/
  4662. ?>
  4663. <form method="post" action="cart.php" name="checkoutform">
  4664. <input type="hidden" name="mode" value="update" />
  4665. <? if($num_added_prods>0 || $_SESSION['isExtendShipping']){
  4666. $msg='';
  4667. if($_SESSION['isExtendShipping']) $msg=$xxNoInvStok.'<br />';
  4668. if($num_added_prods>0) $msg.=$hasrelated['disc_display_text'];
  4669. ?>
  4670. <div style="color:#FF0000; margin-bottom:10px; padding:10px; border:#EBEBEB dashed 1px; background-color: #FFFFFF; font-weight:bold;"><img src="/lib/images/warning.jpg" align="middle" hspace="10px" />
  4671. <?=$msg?></div>
  4672. <? }
  4673. //showarray($hasrelated);
  4674. ?>
  4675. <?php
  4676. if (!empty($tmpMsg)) {
  4677. ?>
  4678. <div style="color:#FF0000; margin-bottom:10px; padding:10px; border:#EBEBEB dashed 1px; background-color: #FFFFFF; font-weight:bold;"><img src="/lib/images/warning.jpg" align="middle" hspace="10px" />
  4679. <?=$tmpMsg?></div>
  4680. <?php
  4681. }
  4682. ?>
  4683. <table class="cobtbl" width="<?php print $maintablewidth?>" border="0" bordercolor="#B1B1B1" cellspacing="1" cellpadding="3" bgcolor="#B1B1B1">
  4684. <?php
  4685. if(($itemsincart = mysql_num_rows($result)) > 0){
  4686. if(! $isInStock){ ?>
  4687. <tr height="30">
  4688. <td class="cobll" bgcolor="#FFFFFF" colspan="6" align="center"><font color="#FF0000"><strong><?php print $xxNoStok?></strong></font></td>
  4689. </tr>
  4690. <?php } ?>
  4691. <tr height="30">
  4692. <td class="cobhl" bgcolor="#EBEBEB" width="15%"><strong><?php print $xxCODets?></strong></td>
  4693. <td class="cobhl" bgcolor="#EBEBEB" width="39%"><strong><?php print $xxCOName?></strong></td>
  4694. <td class="cobhl" bgcolor="#EBEBEB" width="12%" align="center"><strong><?php print $xxCOUPri?></strong></td>
  4695. <td class="cobhl" bgcolor="#EBEBEB" width="12%" align="center"><strong><?php print $xxQuant?></strong></td>
  4696. <td class="cobhl" bgcolor="#EBEBEB" width="12%" align="center"><strong><?php print $xxTotal?></strong></td>
  4697. <td class="cobhl" bgcolor="#EBEBEB" width="10%" align="center"><strong><?php print $xxCOSel?></strong></td>
  4698. </tr>
  4699. <?php //$totaldiscounts = 0;
  4700. $changechecker = "";
  4701. $googlelineitems = '';
  4702. $index = 0;
  4703. $_SESSION['hasdropship']=FALSE;
  4704. $totalgoods2=0;
  4705. $itemsInCart='';
  4706. while($alldata=mysql_fetch_assoc($result)){
  4707. $index++;
  4708. $changechecker .= 'if(document.checkoutform.quant' . $alldata["cartID"] . ".value!=" . $alldata["cartQuantity"] . ") dowarning=true;\n";
  4709. $theoptions = "";
  4710. $theoptionspricediff = 0;
  4711. if($alldata['pDropship']>0)$_SESSION['hasdropship']=TRUE;
  4712. $sSQL = "SELECT coOptGroup,coCartOption,coPriceDiff,coWeightDiff,coExtendShipping,ui.id,ui.display_image,ui.org_img_name FROM cartoptions co LEFT JOIN uploaded_images ui ON co.coCartOption=ui.id WHERE coCartID=" . $alldata["cartID"] . " ORDER BY coID";
  4713. $opts = mysql_query($sSQL) or print(mysql_error());
  4714. $cartID=$alldata["cartID"];
  4715. $optPriceDiff=0;
  4716. while($rs=mysql_fetch_assoc($opts)){
  4717. $theoptionspricediff += $rs["coPriceDiff"];
  4718. $alldata["pWeight"] += (double)$rs["coWeightDiff"];
  4719. $theoptions .= '<tr height="25">';
  4720. $theoptions .= '<td class="cobhl" bgcolor="#EBEBEB" align="right" valign="top"><font style="font-size: 10px"><strong>' . $rs["coOptGroup"] . ':</strong></font></td>';
  4721. $extendshipping='';
  4722. if(!empty($rs["coExtendShipping"])){
  4723. if($rs["coExtendShipping"]>19999999) {
  4724. $thisyeart=substr($rs["coExtendShipping"],0,4);
  4725. $thismontht=substr($rs["coExtendShipping"],4,2);
  4726. $thisdayt=substr($rs["coExtendShipping"],6,2);
  4727. $extendshipping= '<span style="color:#FF0000; font-weight:bold;">*(PRE-ORDER. Will ship after '.$thismontht.'-'.$thisdayt.'-'.$thisyeart .')</span>';
  4728. }else $extendshipping= '<span style="color:#FF0000; font-weight:bold;">*(increases shipping time by '.$rs["coExtendShipping"].' days)</span>';
  4729. }
  4730. $imgsrc='';
  4731. if(!empty($rs["id"])){
  4732. $rs["coCartOption"]=$rs["org_img_name"];
  4733. $imgsrc='<div><img src="/imguploads/img_screen/'.$rs["display_image"].'.gif" align="top" /></div>';
  4734. if (!empty($custom_screen_msg)) {
  4735. $extendshipping= '<div style="color:#FF0000; font-weight:bold;">'.$custom_screen_msg.'</div>';
  4736. }
  4737. }
  4738. $theoptions .= '<td class="cobll" bgcolor="#FFFFFF" valign="top"><font style="font-size: 10px">&nbsp;- ' . str_replace(array("\r\n","\n"),array("<br />","<br />"),$rs["coCartOption"]) .' '.$extendshipping.' </font></td>';
  4739. $theoptions .= '<td class="cobll" bgcolor="#FFFFFF" align="right"><font style="font-size: 10px; color:#FF0000;">' . ($rs["coPriceDiff"]==0 || @$hideoptpricediffs==TRUE ? "" : FormatEuroCurrency($rs["coPriceDiff"])) . '</font>'.$imgsrc.'</td>';
  4740. $theoptions .= '<td class="cobll" bgcolor="#FFFFFF" align="right">&nbsp;</td>';
  4741. $theoptions .= '<td class="cobll" bgcolor="#FFFFFF" align="right"><font style="font-size: 10px; color:#FF0000;">' . ($rs["coPriceDiff"]==0 || @$hideoptpricediffs==TRUE ? " " : FormatEuroCurrency($rs["coPriceDiff"]*$alldata["cartQuantity"])) . '</font></td>';
  4742. $theoptions .= '<td class="cobll" bgcolor="#FFFFFF" align="center">&nbsp;</td>';
  4743. $theoptions .= "</tr>\n";
  4744. $totalgoods2 += ($rs["coPriceDiff"]*(int)$alldata["cartQuantity"]);
  4745. }
  4746. $googlelineitems .= '<item><merchant-private-item-data><product-id>' . xmlencodecharref($alldata['cartProdID']) . '</product-id></merchant-private-item-data><item-name>' . xmlencodecharref(strip_tags($alldata['cartProdName'])) . '</item-name><item-description>' . xmlencodecharref(strip_tags($alldata['pDescription'])) . '</item-description><unit-price currency="' . $countryCurrency . '">' . number_format($alldata['cartProdPrice'] + $theoptionspricediff,2,'.','') . '</unit-price><quantity>' . $alldata['cartQuantity'] . '</quantity></item>';
  4747. mysql_free_result($opts);
  4748. ?>
  4749. <tr height="30">
  4750. <td class="cobhl" bgcolor="#EBEBEB"><strong><?php print $alldata["cartProdID"]?></strong></td>
  4751. <td class="cobll" bgcolor="#FFFFFF"><?php print $alldata["cartProdName"].' <span style="font-size: 10px; color:#FF0000; font-weight:bold;">'.$hasrelated[$cartID].'</span>' ?>
  4752. <?
  4753. /* $img_preview='';
  4754. $imgsrc=explode(',',$alldata["pImage"]);
  4755. echo '<div><img src="'.$imgsrc[0].'" align="top" /></div>';
  4756. */ ?>
  4757. </td>
  4758. <td class="cobll" bgcolor="#FFFFFF" align="right">
  4759. <?php
  4760. if($alldata["cartProdPrice"]==0) print '<span style="color:#FF0000; font-weight:bold;">FREE</span>';
  4761. else print (@$hideoptpricediffs==TRUE ? FormatEuroCurrency($alldata["cartProdPrice"] + $theoptionspricediff) : FormatEuroCurrency($alldata["cartProdPrice"]))
  4762. ?>
  4763. </td>
  4764. <td class="cobll" bgcolor="#FFFFFF" align="center">
  4765. <? if($alldata["cartAddProd"]==0){ ?>
  4766. <input type="text" name="quant<?php print $alldata["cartID"]?>" value="<?php print $alldata["cartQuantity"]?>" size="2" maxlength="5" />
  4767. <? } else { ?>
  4768. <input type="hidden" name="quant<?php print $alldata["cartID"]?>" value="<?php print $alldata["cartQuantity"]?>" size="2" maxlength="5" /><?= $alldata["cartQuantity"]?>
  4769. <? } ?>
  4770. </td>
  4771. <td class="cobll" bgcolor="#FFFFFF" align="right"><?php print (@$hideoptpricediffs==TRUE ? FormatEuroCurrency(($alldata["cartProdPrice"] + $theoptionspricediff)*$alldata["cartQuantity"]) : FormatEuroCurrency($alldata["cartProdPrice"]*$alldata["cartQuantity"]))?></td>
  4772. <td class="cobll" bgcolor="#FFFFFF" align="center"><input type="checkbox" name="delet<?php print $alldata["cartID"]?>" /></td>
  4773. </tr>
  4774. <?php print $theoptions;
  4775. $totalgoods2 += ($alldata["cartProdPrice"]*(int)$alldata["cartQuantity"]);
  4776. $totalquantity += (int)$alldata["cartQuantity"];
  4777. $alldata["cartProdPrice"] += $theoptionspricediff;
  4778. if(($shipType==2 || $shipType==3 || $shipType==4 || $shipType==6) && (double)$alldata["pWeight"]<=0.0)
  4779. $alldata["pExemptions"] = ($alldata["pExemptions"] | 4);
  4780. //echo 'xsshipping'.@$_SESSION["xsshipping"];
  4781. @$_SESSION["xsshipping"] = "";
  4782. //if(@$estimateshipping==TRUE && @$_SESSION["xsshipping"] == "")
  4783. addproducttoshipping($alldata, $index);
  4784. if(!is_array($itemsInCart))$itemsInCart[$t++]=$alldata["pCat"];
  4785. else if(!in_array($alldata["pCat"],$itemsInCart))$itemsInCart[$t++]=$alldata["pCat"];
  4786. }
  4787. $_SESSION['itemsInCart']=$itemsInCart;
  4788. //showarray($_SESSION['itemsInCart']);
  4789. if($addextrarows > 0){ ?>
  4790. <tr height="30">
  4791. <!-- changed from 3 to 5 ; added the shipping info--><td class="cobhl" bgcolor="#EBEBEB" rowspan="<?php print $addextrarows+5;?>">&nbsp;</td>
  4792. <td class="cobll" bgcolor="#FFFFFF" align="right" colspan="3"><strong><?php print $xxSubTot?>:</strong></td>
  4793. <td class="cobll" bgcolor="#FFFFFF" align="right"><?php print FormatEuroCurrency($totalgoods2)?></td>
  4794. <td class="cobll" bgcolor="#FFFFFF" align="center"><a href="#" onclick="javascript:document.checkoutform.submit()"><strong><?php print $xxDelete?></strong></a></td>
  4795. </tr>
  4796. <?php }
  4797. if($totaldiscounts>0){
  4798. calculatediscounts($totalgoods2, false, $coupon_code);
  4799. ?>
  4800. <tr height="30">
  4801. <td class="cobll" bgcolor="#FFFFFF" align="right" colspan="3"><font color="#FF0000"><strong><?php print $xxDsApp.' '.$cpnmessage?></strong></font></td>
  4802. <td class="cobll" bgcolor="#FFFFFF" align="right"><font color="#FF0000"><?php print FormatEuroCurrency($totaldiscounts)?></font></td>
  4803. <td class="cobll" bgcolor="#FFFFFF" align="center">&nbsp;</td>
  4804. </tr>
  4805. <?php }
  4806. if(@$estimateshipping==TRUE){
  4807. //if(@$_SESSION["xsshipping"] == ""){
  4808. calculateshipping();
  4809. if(is_numeric(@$shipinsuranceamt) && abs(@$addshippinginsurance)==1)
  4810. $shipping += ($addshippinginsurance==1 ? (((double)$totalgoods*(double)$shipinsuranceamt)/100.0) : $shipinsuranceamt);
  4811. calculateshippingdiscounts(FALSE);
  4812. $_SESSION["xsshipping"]=$shipping-$freeshipamnt;
  4813. //}else{
  4814. //$shipping = $_SESSION["xsshipping"];
  4815. //}
  4816. //select shipping type
  4817. //calculateshipping();
  4818. //echo 'shipping='.$_SESSION["xsshipping"];
  4819. //echo 'opt='.$_SESSION["xsshipping"];
  4820. /*if(@$_POST["change_shippingest"]==1) {
  4821. $aShipping = explode("|",$_POST['shippingest']);
  4822. $shipping = $aShipping[0];
  4823. }else{
  4824. $shipping = $_SESSION['shippingestimate'];
  4825. }
  4826. $_SESSION['shippingestimate']=$shipping;*/
  4827. $foundMethod = false;
  4828. for($k=0; $k < $numshipoptions; $k++) {
  4829. if($intShipping[$k][0] == $_SESSION['shp_method']) {
  4830. $foundMethod = true;
  4831. }
  4832. }
  4833. if(!empty($_POST['shippingest'])) {
  4834. if(strstr($_POST['shippingest'],"|")) {
  4835. $aShpMethod = explode("|",$_POST['shippingest']);
  4836. $_SESSION['shp_method'] = $aShpMethod[1];
  4837. }else{
  4838. $_SESSION['shp_method'] = 'default';
  4839. $shipping = 'default';
  4840. $foundMethod = true;
  4841. }
  4842. }else{
  4843. $_SESSION['shp_method'] = 'default';
  4844. $shipping = 'default';
  4845. $foundMethod = true;
  4846. }
  4847. ?>
  4848. <!--<tr>
  4849. <td colspan="6" bgcolor="#FFFFFF"><?=showarray($aShpMethod)?></td>
  4850. </tr>-->
  4851. <?php
  4852. //echo 'shipping is this='.$shipping;
  4853. //calculateshippingdiscounts($coupon_code);
  4854. // Blake 12/14/06
  4855. // fedex for standard price
  4856. if ($_SESSION['hasdropship']) $numshipoptions=1;
  4857. //if($_SESSION['hasdropship'] && $numshipoptions==3)$numshipoptions=$numshipoptions-2;
  4858. //else if($_SESSION['hasdropship'] && $numshipoptions==2)$numshipoptions--;
  4859. $_SESSION['total_goods']=$totalgoods;
  4860. // end fedex
  4861. $shipping_type= "<select id='shippingest' name='shippingest' size='1' onChange=' shippingJump();'><option value=''>Please Select...</option>";
  4862. if($shipType==2 || $shipType==5){
  4863. if(is_array($allzones)){
  4864. for($index3=0; $index3 < $numshipoptions; $index3++){
  4865. if($_SESSION['shp_method'] == 'default') {
  4866. $_SESSION['shp_method'] = $intShipping[$index3][0];
  4867. }
  4868. if($shipping == 'default') {
  4869. $shipping = $intShipping[$index3][2];
  4870. }
  4871. $shipping_type.= "<option value='" . $intShipping[$index3][2] . "|" . $intShipping[$index3][0] . "'";
  4872. if($_SESSION['shp_method']==$intShipping[$index3][0]) {
  4873. $shipping_type.= ' selected="selected"';
  4874. $shipping = $intShipping[$index3][2];
  4875. }elseif(!$foundMethod) {
  4876. $shipping_type.= ' selected="selected"';
  4877. $foundMethod = true;
  4878. $_SESSION['shp_method'] = $intShipping[$index3][0];
  4879. }
  4880. $shipping_type.= ">";
  4881. //Blake Dec 14 2006
  4882. //fed ex sale
  4883. //$fedex='';
  4884. //if($totalgoods>50 && $index3==$numshipoptions-1) $fedex=' At Standard Price';
  4885. // end fed ex sale
  4886. $shipping_type.= ($freeshippingapplied && ($pzFSA & pow(2, $index3))!=0 ? $xxFree . " " . $intShipping[$index3][0] : $intShipping[$index3][0]. $fedex . " " . FormatEuroCurrency($intShipping[$index3][2])) . '</option>';
  4887. }
  4888. }
  4889. }else{
  4890. for($indexmso=0; $indexmso<$maxshipoptions; $indexmso++){
  4891. $shipRow = $intShipping[$indexmso];
  4892. if($shipType==3){
  4893. if($iTotItems==$shipRow[3]){
  4894. for($index2=0;$index2<$numuspsmeths;$index2++){
  4895. if(trim($shipRow[0]) == trim($uspsmethods[$index2][0])){
  4896. $shipping_type.= "<option value='" . $shipRow[2] . "|". trim($uspsmethods[$index2][1]) ."|" . trim($uspsmethods[$index2][2]) . "'" . (freeshippingapplied && $uspsmethods[$index2][1]==1 ? " selected>" : ">");
  4897. $shipping_type.= trim($uspsmethods[$index2][2]) . " (" . $shipRow[1] . ") " . ($freeshippingapplied && $uspsmethods[$index2][1]==1 ? $xxFree : FormatEuroCurrency($shipRow[2]));
  4898. $shipping_type.= "</option>";
  4899. }
  4900. }
  4901. }
  4902. }elseif($shipType==4 || $shipType==6){
  4903. if($shipRow[3]){
  4904. $shipping_type.= "<option value='" . $shipRow[2] . "|". $shipRow[4] ."|" . $shipRow[0] . "'" . ($freeshippingapplied && $shipRow[4]==1 ? " selected>" : ">") . $shipRow[0] . " ";
  4905. if(trim($shipRow[1]) != "") print "(" . $xxGuar . " " . $shipRow[1] . ") ";
  4906. $shipping_type.= ($freeshippingapplied && $shipRow[4]==1 ? $xxFree : FormatEuroCurrency($shipRow[2]));
  4907. $shipping_type.= "</option>";
  4908. }
  4909. }
  4910. }
  4911. }
  4912. if(@$willpickuptext != ""){
  4913. if(@$willpickupcost=="") $willpickupcost=0;
  4914. $shipping_type.= '<option value="' . $willpickupcost . "|1|" . str_replace('"','&quot;',$willpickuptext) . '">';
  4915. $shipping_type.= $willpickuptext . " " . FormatEuroCurrency($willpickupcost) . "</option>";
  4916. }
  4917. $shipping_type.= "</select>";
  4918. $_SESSION['shippingestimate'] = $shipping;
  4919. //
  4920. if($errormsg != ""){ ?>
  4921. <tr height="30">
  4922. <td class="cobll" bgcolor="#FFFFFF" align="right" colspan="3"><strong><?php print $xxShpEst?>:</strong></td>
  4923. <td class="cobll" bgcolor="#FFFFFF" colspan="2"><font style="font-size: 10px" color="#FF0000"><strong><?php print $errormsg?></strong></font></td>
  4924. </tr>
  4925. <?php }elseif(!empty($_SESSION['shippingestimate']) || !empty($_SESSION["discounts"]))
  4926. { ?>
  4927. <tr height="30">
  4928. <td class="cobll" bgcolor="#FFFFFF" align="right" colspan="3"><strong><?php print $xxShpEst?>:</strong></td>
  4929. <td class="cobll" bgcolor="#FFFFFF" align="right"><?php if($freeshipamnt==$shipping) print '<p align="center"><font color="#FF0000"><strong>' . $xxFree . '</strong></font></p>'; else print FormatEuroCurrency($shipping)?></td>
  4930. <td class="cobll" bgcolor="#FFFFFF" align="center">&nbsp;</td>
  4931. </tr>
  4932. <?php }
  4933. if($wantcountryselector){ ?>
  4934. <tr height="30">
  4935. <td class="cobll" bgcolor="#FFFFFF" align="right" colspan="3"><strong><?php print $xxCountry?>:</strong></td>
  4936. <td class="cobll" bgcolor="#FFFFFF" colspan="2">
  4937. <select name="country" size="1" onchange="if(checkoutform.org_country.value!=this.value) {checkoutform.change_country.value=1;checkoutform.shippingest.disabled=true} else {checkoutform.change_country.value='';checkoutform.shippingest.disabled=false;}"><?php
  4938. $sSQL = "SELECT countryName,countryCode," . getlangid("countryName",8) . " AS cnameshow FROM countries WHERE countryEnabled=1 ORDER BY countryOrder DESC," . getlangid("countryName",8);
  4939. $result = mysql_query($sSQL) or print(mysql_error());
  4940. while($rs = mysql_fetch_assoc($result)){
  4941. print '<option value="' . $rs["countryName"] . '"';
  4942. if($shipcountry==$rs["countryName"]) print ' selected';
  4943. print '>' . $rs["cnameshow"] . "</option>\r\n";
  4944. }
  4945. mysql_free_result($result); ?></select></td>
  4946. </tr>
  4947. <?php }
  4948. if($wantshipppingmethod){ ?>
  4949. <tr height="30">
  4950. <td colspan="3" align="right" valign="top" bgcolor="#FFFFFF" class="cobll">
  4951. <input name="org_shippingest" id="org_shippingest" type="hidden" value="<?=$shipping?>"><input name="change_shippingest" id="change_shippingest" type="hidden" value="">
  4952. <input name="org_country" id="org_country" type="hidden" value="<?=$shipcountry?>"><input name="change_country" id="change_country" type="hidden" value="">
  4953. <strong>Shipping Method:</strong>
  4954. <?php
  4955. // Christmas Shipping Message
  4956. $now = mktime();
  4957. /*if ($now > strtotime("2008-12-16 00:00:00") && $now < strtotime("2008-12-25 00:00:00")) {
  4958. echo '<div style="font-size: 11px; font-weight: bold; color: green;">For Christmas delivery we recommend <u>';
  4959. if ($now > strtotime("2008-12-17 14:00:00") && $now < strtotime("2008-12-22 00:00:00")) {
  4960. echo "FedEx Express";
  4961. } else if ($now > strtotime("2008-12-22 00:00:00") && $now < strtotime("2008-12-23 00:00:00")) {
  4962. echo "FedEx Overnight";
  4963. } else {
  4964. echo "Priority Mail";
  4965. }
  4966. echo '</u></div>';
  4967. }*/
  4968. ?>
  4969. <?php
  4970. // MODIFIED SHIPPING TIMES
  4971. //if(strtotime("20 December 2006") < mktime()) { // GO BACK TO REGULAR SHIPPING TIMES
  4972. $mst_standard = "5-8";
  4973. //}else{ // MODIFIED SHIPPING TIMES FOR CHRISTMAS
  4974. //$mst_standard = "10-15";
  4975. //}
  4976. ?>
  4977. <div style="padding: 2px; border: 1px solid #555; background-color: #FFFFCC; width: 500px; font-family: Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#555; line-height:15px;"><strong>Standard</strong> = <?=$mst_standard?> business days.<br /> <strong>Priority Mail</strong> = 3-4 business days.<br /><strong>FedEx</strong> = 2-3 business days.<br />(before 2PM MST) <strong>FedEx Overnight</strong> = 1 business day.<br />
  4978. <strong>International</strong> = 7 business days.</div></td>
  4979. <td class="cobll" bgcolor="#FFFFFF" colspan="2">
  4980. <?=$shipping_type?>
  4981. <input type="hidden" id="shp_method" name="shp_method" value="<?=$_SESSION['shp_method']?>" />
  4982. </td>
  4983. </tr>
  4984. <?php }
  4985. if($wantcouponcode){ ?>
  4986. <tr height="30">
  4987. <td class="cobll" bgcolor="#FFFFFF" align="right" colspan="3" style="line-height: normal"><strong>Coupon Code:</strong><br />
  4988. <span style="font-size: 10px; font-style: italic;">(1 per order, please enter gift certificates on next page)</span></td>
  4989. <td class="cobll" bgcolor="#FFFFFF" colspan="2"><input name="cpncode" type="text" value="<?=$_POST["cpncode"]?>" onchange="mainform.cpncode.value=this.value;"></td>
  4990. </tr>
  4991. <?php }
  4992. if($wantzipselector){ ?>
  4993. <tr height="30">
  4994. <td class="cobll" bgcolor="#FFFFFF" align="right" colspan="3"><strong><?php print $xxZip?>:</strong></td>
  4995. <td class="cobll" bgcolor="#FFFFFF" colspan="2"><input type="text" name="zip" size="8" value="<?php print str_replace('"','&quot;',$destZip)?>"></td>
  4996. </tr>
  4997. <?php }
  4998. } ?>
  4999. <tr height="30">
  5000. <?php if($addextrarows==0){ ?>
  5001. <td class="cobhl" bgcolor="#EBEBEB" rowspan="2">&nbsp;</td>
  5002. <?php } ?>
  5003. <td class="cobll" bgcolor="#FFFFFF" align="right" colspan="3"><strong><?php print $xxGndTot?>:</strong></td>
  5004. <td class="cobll" bgcolor="#FFFFFF" align="right"><?php print FormatEuroCurrency(($totalgoods2+$shipping)-($totaldiscounts+$freeshipamnt))?></td>
  5005. <td class="cobll" bgcolor="#FFFFFF" align="center"><?php if($addextrarows==0) print '<a href="#" onclick="javascript:document.checkoutform.submit()"><strong>' . $xxDelete . '</strong></a>'; else print '&nbsp;'; ?></td>
  5006. </tr>
  5007. <tr height="30">
  5008. <td class="cobll" bgcolor="#FFFFFF" colspan="5">
  5009. <table width="100%" cellspacing="0" cellpadding="0" border="0">
  5010. <tr>
  5011. <td class="cobll" bgcolor="#FFFFFF" width="50%" align="center"><a href="<?php if(trim(@$_SESSION["frompage"])!="" && (@$actionaftercart==2 || @$actionaftercart==3)) print $_SESSION["frompage"]; else print $xxHomeURL?>"><strong><?php print $xxCntShp?></strong></a></td>
  5012. <td class="cobll" bgcolor="#FFFFFF" width="50%" align="center"><a href="#" onclick="document.checkoutform.submit()"><strong><?php print $xxUpdTot?></strong></a></td>
  5013. <td class="cobll" bgcolor="#FFFFFF" width="16" height="26" align="right" valign="bottom"><img src="/lib/images/tablebr.gif" alt="" /></td>
  5014. </tr>
  5015. </table>
  5016. </td>
  5017. </tr>
  5018. <script language="JavaScript" type="text/javascript">
  5019. <!--
  5020. function changechecker(){
  5021. dowarning=false;
  5022. <?php print $changechecker?>
  5023. if(dowarning){
  5024. if(confirm('<?php print str_replace("'","\'",$xxWrnChQ)?>')){
  5025. document.checkoutform.submit();
  5026. return false;
  5027. }else
  5028. return(true);
  5029. }
  5030. return true;
  5031. }
  5032. //--></script>
  5033. <?php
  5034. }else{
  5035. $cartEmpty=TRUE;
  5036. ?>
  5037. <tr>
  5038. <td class="cobll" bgcolor="#FFFFFF" colspan="6" align="center">
  5039. <p>&nbsp;</p>
  5040. <p><?php print $xxSryEmp?></p>
  5041. <p>&nbsp;</p>
  5042. <script language="JavaScript" type="text/javascript">
  5043. <!--
  5044. if(document.cookie=="") document.write("<?php print str_replace('"', '\"', $xxNoCk . " " . $xxSecWar)?>");
  5045. //--></script>
  5046. <noscript><?php print $xxNoJS . " " . $xxSecWar?></noscript>
  5047. <p><a href="<?php if(trim(@$_SESSION["frompage"])!="" && (@$actionaftercart==2 || @$actionaftercart==3)) print $_SESSION["frompage"]; else print $xxHomeURL?>"><strong><?php print $xxCntShp?></strong></a></p>
  5048. <p>&nbsp;</p>
  5049. </td>
  5050. </tr>
  5051. <?php
  5052. }
  5053. ?> </table>
  5054. </form>
  5055. <?php
  5056. ///////showarray($_SESSION);
  5057. }
  5058. if(@$_GET["token"] == '' && @$_POST["mode"] != "paypalexpress1" && @$_POST["mode"] != "go" && @$_POST["mode"] != "checkout" && @$_POST["mode"] != "add" && @$_POST["mode"] != "authorize" && ! $cartEmpty && $_POST['mode']!="edit" && $cartisincluded != TRUE){
  5059. if(session_id()=='') print 'The PHP session has not been started. This can cause problems with the shopping cart function. For help please go to <a href="http://www.ecommercetemplates.com/support/">http://www.ecommercetemplates.com/support/</a>';
  5060. $gshipmethods=array();
  5061. function writeuniquegoogleshipmethod($theshipmethod){
  5062. global $countryCurrency,$sXML,$googledefaultshipping,$gshipmethods;
  5063. if(@$googledefaultshipping=='') $googledefaultshipping='999.99';
  5064. $gotshipmethod=FALSE;
  5065. if(! in_array($theshipmethod,$gshipmethods)){
  5066. array_push($gshipmethods, $theshipmethod);
  5067. $sXML .= '<merchant-calculated-shipping name="' . $theshipmethod . '"><price currency="' . $countryCurrency . '">' . $googledefaultshipping . '</price></merchant-calculated-shipping>';
  5068. }
  5069. }
  5070. function generatemerchantcalcshiptypes($theshiptype){
  5071. global $countryCurrency,$sXML,$xxShipHa,$somethingToShip,$googledefaultshipping,$splitUSZones,$gshipmethods;
  5072. if($theshiptype==1 || ! $somethingToShip){
  5073. writeuniquegoogleshipmethod(xmlencodecharref($xxShipHa));
  5074. }elseif($theshiptype==2 || $theshiptype==5){
  5075. for($index3=1; $index3<=5; $index3++){
  5076. $sSQL = "SELECT DISTINCT pzMethodName" . $index3 . " FROM postalzones WHERE pzName<>'' AND pzMethodName" . $index3 . "<>''";
  5077. if(! $splitUSZones) $sSQL .= ' AND pzID < 100';
  5078. $result = mysql_query($sSQL) or print(mysql_error());
  5079. while($rs = mysql_fetch_assoc($result)){
  5080. writeuniquegoogleshipmethod(trim(xmlencodecharref($rs['pzMethodName' . $index3])));
  5081. }
  5082. }
  5083. }elseif($theshiptype==3 || $theshiptype==4 || $theshiptype==6 || $theshiptype==7){
  5084. if($theshiptype==3) $startid=0;
  5085. if($theshiptype==4) $startid=1;
  5086. if($theshiptype==6) $startid=2;
  5087. if($theshiptype==7) $startid=3;
  5088. $sSQL = "SELECT DISTINCT uspsShowAs,uspsFSA FROM uspsmethods WHERE (uspsID>" . ($startid*100) . " AND uspsID<" . (($startid+1)*100) . ") AND uspsUseMethod=1 ORDER BY uspsFSA DESC,uspsShowAs";
  5089. $result = mysql_query($sSQL) or print(mysql_error());
  5090. while($rs = mysql_fetch_assoc($result)){
  5091. writeuniquegoogleshipmethod(xmlencodecharref($rs['uspsShowAs']));
  5092. }
  5093. }
  5094. }
  5095. function writegoogleparams($data1, $data2, $demomode){
  5096. global $shipType,$adminIntShipping,$willpickuptext,$willpickupcost,$countryCurrency,$storeurl,$googlelineitems,$thesessionid,$sXML,$gcallbackpath;
  5097. $sSQL = "SELECT cpnID FROM coupons WHERE cpnIsCoupon=1 AND cpnNumAvail > 0 AND cpnEndDate >= '" . date('Y-m-d H:i:s',time()) ."' AND cpnBeginDate <= '" . date('Y-m-d H:i:s',time()) ."'";
  5098. $result = mysql_query($sSQL) or print(mysql_error());
  5099. if(mysql_num_rows($result)==0) $acoupondefined='false'; else $acoupondefined='true';
  5100. $sXML = '<?xml version="1.0" encoding="UTF-8"?><checkout-shopping-cart xmlns="http://checkout.google.com/schema/2"><shopping-cart>';
  5101. $sXML .= '<items>' . $googlelineitems . '</items>';
  5102. $sXML .= '<merchant-private-data><privateitems><sessionid>' . (@$_SESSION['clientID'] != '' ? 'cid' . $_SESSION['clientID'] : 'sid' . $thesessionid) . '</sessionid><partner>' . xmlencodecharref(trim(@$_COOKIE['PARTNER'])) . '</partner></privateitems></merchant-private-data></shopping-cart>';
  5103. $sXML .= '<checkout-flow-support><merchant-checkout-flow-support><platform-id>236638029623651</platform-id>';
  5104. $sXML .= '<edit-cart-url>' . $storeurl . 'cart.php</edit-cart-url><continue-shopping-url>' . $storeurl . 'categories.php</continue-shopping-url>';
  5105. $sXML .= '<shipping-methods>';
  5106. generatemerchantcalcshiptypes($shipType);
  5107. if($adminIntShipping != 0 && $adminIntShipping != $shipType) generatemerchantcalcshiptypes($adminIntShipping);
  5108. if(@$willpickuptext != ''){
  5109. if(@$willpickupcost=='') $willpickupcost=0;
  5110. $sXML .= '<merchant-calculated-shipping name="' . xmlencodecharref($willpickuptext) . '"><price currency="' . $countryCurrency . '">' . $willpickupcost . '</price></merchant-calculated-shipping>';
  5111. }
  5112. $sXML .= '</shipping-methods>';
  5113. //$sXML .='<analytics-data>%analitics_data%</analytics-data>';
  5114. $sXML .= '<request-buyer-phone-number>true</request-buyer-phone-number><tax-tables merchant-calculated="true"><default-tax-table><tax-rules></tax-rules></default-tax-table></tax-tables>';
  5115. $sXML .= '<merchant-calculations><merchant-calculations-url>' . $gcallbackpath . '</merchant-calculations-url><accept-merchant-coupons>' . $acoupondefined . '</accept-merchant-coupons><accept-gift-certificates>false</accept-gift-certificates></merchant-calculations></merchant-checkout-flow-support></checkout-flow-support>';
  5116. $sXML .= '</checkout-shopping-cart>';
  5117. // print str_replace("<","<br />&lt;",str_replace("</","&lt;/",$sXML)) . "<br />\n";
  5118. $thecart = base64_encode($sXML);
  5119. $thesignature = base64_encode(CalcHmacSha1($sXML,$data2));
  5120. $theurl = 'https://' . ($demomode ? 'sandbox' : 'checkout') . '.google.com' . ($demomode ? '/checkout' : '') . '/cws/v2/Merchant/' . $data1 . '/checkout'; // . '/diagnose';
  5121. writehiddenvar('cart', $thecart);
  5122. writehiddenvar('signature', $thesignature);
  5123. writehiddenvar('analyticsdata', '');
  5124. //writehiddenvar('theurl', $theurl);
  5125. //writehiddenvar('auth',base64_encode($data1.':'.$data2));
  5126. return($theurl);
  5127. }
  5128. $requiressl = FALSE;
  5129. if(@$pathtossl == ""){
  5130. $sSQL = "SELECT payProvID FROM payprovider WHERE payProvEnabled=1 AND (payProvID IN (7,10,12,13,18) OR (payProvID=16 AND payProvData2='1'))"; // All the ones that require SSL
  5131. $result = mysql_query($sSQL) or print(mysql_error());
  5132. if(mysql_num_rows($result) > 0) $requiressl = TRUE;
  5133. mysql_free_result($result);
  5134. }
  5135. $sSQL = "SELECT payProvID FROM payprovider WHERE payProvEnabled=1 AND payProvID=18"; // Check for PayPal Payment Pro
  5136. $result = mysql_query($sSQL) or print(mysql_error());
  5137. if(mysql_num_rows($result) > 0) $paypalexpress = TRUE;
  5138. mysql_free_result($result);
  5139. //echo '@$pathtossl='.@$pathtossl;
  5140. if($requiressl || @$pathtossl != ""){
  5141. if(@$pathtossl != ""){
  5142. if(substr($pathtossl,-1) != "/") $pathtossl .= "/";
  5143. $cartpath = $pathtossl . "cart.php";
  5144. $gcallbackpath = $pathtossl . 'admin/gcallback.php';
  5145. }else
  5146. //$cartpath = str_replace("http:","https:",$storeurl) . "cart.php";
  5147. $cartpath = 'cart.php';
  5148. $gcallbackpath = str_replace('http:','https:',$storeurl) . 'admin/gcallback.php';
  5149. }else{
  5150. $cartpath="cart.php";
  5151. $gcallbackpath= $storeurl . 'admin/gcallback.php';
  5152. }
  5153. //$gcallbackpath= $storeurl . 'admin/gcallback.php';
  5154. ?>
  5155. <table border="0" cellspacing="0" cellpadding="0" width="100%" bgcolor="<?php print $maintablebg?>" align="center">
  5156. <tr>
  5157. <td width="100%">
  5158. <div class="cart_box"> <form method="post" name="mainform" action="<?php print $cartpath?>" onsubmit="return changechecker(this)" >
  5159. <input type="hidden" name="mode" value="checkout" />
  5160. <input type="hidden" name="sessionid" value="<?php print session_id();?>" />
  5161. <input type="hidden" name="PARTNER" value="<?php print trim(@$_COOKIE["PARTNER"]).trim(@$_COOKIE["ifrogz_affiliate"])//Blake added ifrogz_affiliate ?>" />
  5162. <input type="hidden" name="estimate" value="<?php print number_format(($totalgoods+$shipping)-($totaldiscounts+$freeshipamnt),2,'.','') ?>" />
  5163. <input name="cpncode" type="hidden" value="<?=$_POST["cpncode"]?>" />
  5164. <?php if(trim(@$_SESSION["clientUser"]) != ""){
  5165. mysql_query("DELETE FROM tmplogin WHERE tmplogindate < '" . date("Y-m-d H:i:s", time()-(3*60*60*24)) . "' OR tmploginid='" . session_id() . "'") or print(mysql_error());
  5166. mysql_query("INSERT INTO tmplogin (tmploginid, tmploginname, tmplogindate) VALUES ('" . session_id() . "','" . trim($_SESSION["clientUser"]) . "','" . date("Y-m-d H:i:s", time()) . "')") or print(mysql_error());
  5167. print '<input type="hidden" name="checktmplogin" value="1" />';
  5168. if(($_SESSION["clientActions"] & 8) == 8 || ($_SESSION["clientActions"] & 16) == 16){
  5169. if(@$minwholesaleamount!="") $minpurchaseamount=$minwholesaleamount;
  5170. if(@$minwholesalemessage!="") $minpurchasemessage=$minwholesalemessage;
  5171. }
  5172. }
  5173. ?>
  5174. <table width="100%" border="0" cellspacing="0" cellpadding="3" bgcolor="<?php print $innertablebg?>">
  5175. <?php if($totalgoods < @$minpurchaseamount){ ?>
  5176. <tr>
  5177. <td width="100%" align="center" colspan="2"><?php print @$minpurchasemessage?></td>
  5178. </tr>
  5179. <?php //} elseif($paypalexpress){ ?>
  5180. <!--<tr>
  5181. <td align="center" colspan="2"><?php print $xxPPPBlu?></td>
  5182. </tr>
  5183. <tr>
  5184. <td colspan="2" align="center"><input type="image" src="/lib/images/ppexpress.gif" border="0" onclick="javascript:document.forms.mainform.mode.value='paypalexpress1';" /></td>
  5185. </tr>-->
  5186. <?php
  5187. }else{ ?>
  5188. <!-- <tr>
  5189. <td width="50%" align="right">
  5190. <div style="width: 170px; text-align: center">
  5191. <div style="font-size: 16px; background: #E3E3E3; border: 1px solid #E3E3E3"><strong>Have a promo code?</strong></div>
  5192. <div style="border: 1px solid #E3E3E3; font-size: 12px">Enter it on the next page.</div>
  5193. </div>
  5194. </td>
  5195. <td width="50%" align="left">
  5196. <div style="width: 150px">
  5197. <div style="text-align: center; background: #FF9900; border-top: 1px solid #FF9900; border-right: 1px solid #FF9900; border-left: 1px solid #FF9900; color: #FFFFFF; font-weight: bold">
  5198. <span style="margin: 3px">Shipping Prices</span>
  5199. </div>
  5200. <div style="font-size: 12px; font-weight: bold; border-bottom: 1px solid #FF9900; border-right: 1px solid #FF9900; border-left: 1px solid #FF9900">
  5201. <div style="clear: both">
  5202. <div style="float: left; margin-left: 10px">U.S.</div><div style="float:right; margin-right: 10px">$5</div>
  5203. </div>
  5204. <div style="clear: both">
  5205. <div style="float: left; margin-left: 10px">Canada</div><div style="float:right; margin-right: 10px">$9</div>
  5206. </div>
  5207. <div style="clear: both">
  5208. <div style="float: left; margin-left: 10px">International</div><div style="float:right; margin-right: 10px">$15</div>
  5209. </div>
  5210. <div style="clear: both"></div>
  5211. </div>
  5212. </div>
  5213. </td>
  5214. </tr> -->
  5215. <? if(@$_SESSION['clientLoginLevel'] != '') $minloglevel=$_SESSION['clientLoginLevel']; else $minloglevel=0;
  5216. $sSQL = "SELECT payProvID,payProvData1,payProvData2,payProvDemo FROM payprovider WHERE payProvEnabled=1 AND payProvLevel<=" . $minloglevel . " ORDER BY payProvOrder";
  5217. $result = mysql_query($sSQL) or print(mysql_error());
  5218. $regularcheckoutshown=FALSE;
  5219. $showgoogle=FALSE;
  5220. while($rs = mysql_fetch_assoc($result)){
  5221. ?>
  5222. <?php if($rs['payProvID']==20){
  5223. $showgoogle=TRUE;
  5224. $payProvData1=$rs['payProvData1'];
  5225. $payProvData2=$rs['payProvData2'];
  5226. $payProvDemo=$rs['payProvDemo'];
  5227. //echo '$gcallbackpath='.$gcallbackpath;
  5228. }elseif(! $regularcheckoutshown){
  5229. $regularcheckoutshown=TRUE; ?>
  5230. <tr>
  5231. <td width="100%" align="center" colspan="2"><strong><?php print $xxPrsChk?></strong></td>
  5232. </tr>
  5233. <tr>
  5234. <td align="center" colspan="2"><input type="image" src="/lib/images/design/checkout.gif" border="0" onclick="javascript:document.forms.mainform.mode.value='checkout';" /></td>
  5235. </tr>
  5236. <?php }
  5237. if($rs['payProvID']==19){ ?>
  5238. <tr><th align="center" colspan="2">OR<?php //print $xxPPPBlu?></th></tr>
  5239. <tr><td colspan="2" align="center"><input type="image" src="https://www.paypal.com/en_US/i/btn/btn_xpressCheckoutsm.gif" border="0" onclick="javascript:document.forms.mainform.mode.value='paypalexpress1';" alt="PayPal Express" /></td></tr>
  5240. <? }
  5241. }
  5242. mysql_free_result($result);
  5243. } ?>
  5244. </table>
  5245. </form>
  5246. <? if($showgoogle && empty($_COOKIE['ifrogz_affiliate'])){?>
  5247. <div style="text-align:center; font-weight:bold;">OR</div>
  5248. <table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="<?php print $innertablebg?>">
  5249. <? if($xxGooCo != ''){ ?><tr><td align="center" colspan="2"><strong><?php print $xxGooCo?></strong></td></tr><?php } ?>
  5250. <tr><td colspan="2" align="center">
  5251. <form action="" name="googleform" method="POST" onsubmit="setUrchinInputCode();" >
  5252. <? $theurl = writegoogleparams($payProvData1, $payProvData2, $payProvDemo);?>
  5253. <input type="image" name="GBuy" alt="Google Checkout" src="https://checkout.google.com/buttons/checkout.gif?merchant_id=<?php print $rs['payProvData1'] . (@$googlebuttonparams!='' ? $googlebuttonparams : '&w=160&h=43&style=white&variant=text&loc=en_US') ?>" onclick="document.forms.googleform.action='<?php print $theurl?>';">
  5254. </form>
  5255. <script src="https://checkout.google.com/files/digital/urchin_post.js" type="text/javascript"></script>
  5256. </td></tr>
  5257. </table>
  5258. <? } ?>
  5259. </div>
  5260. </td>
  5261. </tr>
  5262. </table>
  5263. <?php
  5264. }
  5265. ?>