// Main Cart Functions //

var jcart = {

  err_check_qty:function(qty) {
   //nAN
   var error="";
  if(isNaN(qty)) {
  error=1;
  $('error').innerHTML = crt_errs[1];
  $('error').appear({ duration: 1.0 });
  return error;
    }
  //invalid minimum qty
  if(qty < $F('min_qty')) {
  error=1;
  $('error').innerHTML = crt_errs[0];
  $('error').appear({ duration: 1.0 });
  return error;
    }
   },
  add_to_cart:function(frmnme) {
  this.error = this.cnfg_sub_tot();
  if(this.error == false) { return false;}
  this.error = this.check_line_items();
  
  //alert(error);return false;
  var formlength = frmnme.length;
  var pars = Form.serialize(frmnme);
    if(this.error == undefined) {
   $(frmnme).action = "cart.php";
   $(frmnme).submit();
      }
			},
  check_line_items:function() {
  var line,liner;
   for(i=1;i<=5;i++) {
   line = 'line' + i + '_desc';
   liner = 'line' + i + 'r';
	 if($(liner)) {
	 
	 if($F(liner) == 1 && $F(line) == '') {
	 var errline = 'error_' + line;
	 Effect.Appear(errline);
	 var error = 1;
	   }
	    }
     }
	 if(error) { return false; }
    },
  cnfg_sub_tot:function() {
  /* program multi quantity for the onBlur */
  var qty=0,error,cqty;
   /* multi option pages with multiple quantities. 
           perhaps add other discount options in the future. */
   
    /* check qty. */
	 if($('multcount')) {
	if($F('multcount')) {
	var multcnt = $F('multcount');
	   
	   for(r=1;r<=multcnt;r++) {
	     cqty = 'qty' + r;
		  if($F(cqty)) {
		  //alert($F(cqty));
		      if(isNaN($F(cqty))){
			  qty=0;
		      error = this.err_check_qty($F(cqty));
			  break;
		       } else {
		       qty = eval(qty) + eval($F(cqty));
		       }
		   }
		 
	    }
	 
	 if(!qty) { error = this.err_check_qty(qty);return false;} 
	}
 // error = this.err_check_qty(qty);
    } else {
	
  qty = $F('qty');
  error = this.err_check_qty(qty);
    }
  
  
	if(error) { return false; }
	
	/* configure pricing */
	for(i=1;i<=9;i++) {
	var qtya = 'pqty' + i;
	var retail = 'retail' + i;
	var incr = 'inc' + i;
	if($(qtya)) {
	qtya = $(qtya).innerHTML;
	qtya = eval(qtya);//convert to num
	retail = $(retail).innerHTML;
	retail = retail.substring(1,retail.length);
    if(qty >= qtya) { 
	//alert('here . ' + qty + ' is>than ' + qtya + ' retail=' + retail);
	$('item_price').value = retail; 
	// Incremental variables are next. (we'll have to add this to the forms.. incrvle = $F(incr);
	     }
       }
	  }
  
  var subtot = qty * $('item_price').value;
  subtot = this.roundoff(subtot);
    $('ditem_price').innerHTML = $F('item_price');
    $('dsubtot').innerHTML = subtot;
   },
   /* Round Off */ 
   roundoff:function(tt) {
   tt = Math.round(tt*100)/100;
   // change to string. //
   tt = tt+'';

 if(tt.indexOf(".")) {
 var tt1 = tt.split(".");
  if(!tt1[1]) { tt1[1] = '0'; }
  if(tt1[1].length == 1) {
  tt1[1] += '0';
  } 

  } else {
 var tt= new Array();
 tt1[0]=tt;
 tt1[1] = ".00";
  }
 
  tt = tt1[0] + '.' + tt1[1];
  return tt;
   /* end roundoff() */
  },
  remove_cart_item:function(x) {
  var url = 'view_cart.php';
  var pars = 'faction=remove_cart_item&x=' + x;
  var myAjax = new Ajax.Request(
			url, 
			{
				method: 'get', 
				parameters: pars, 
				onCreate: this.show_aj_image,
				onComplete: this.showResponse
			});
   },
   showResponse:function(request) {
  $('results').innerHTML = request.responseText;
  $('results').appear({ duration: 1.0 });
   },
   show_aj_image:function() {
   $('results').hide();
    },
	jvalidte_fild:function(fieldnm) {
	
    var errcde = 'error_';
    errcde += fieldnm;
    if($F(fieldnm)=="") {
    $(errcde).appear({ duration: 1.0 });
    $(errcde + '_outline').className = 'joutline';
    return false; 
     }
   
    },
	validate_email:function(email) {
	     if ($F('email')==""){ 
	 $('error_invalid_email_outline').className = 'joutline';
     $('error_invalid_email').appear({ duration: 1.0 });
     $('error_invalid_email').innerHTML = crt_errs[0];
     return false;   
        }
  if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test($F('email'))){ 
   $('error_invalid_email_outline').className = 'joutline';    
   $('error_invalid_email').appear({ duration: 1.0 });
   $('error_invalid_email').innerHTML = crt_errs[1];
   return false;
     }   
    },
    what_key_pres:function(e,div) {
	var whahapeen = 0; 
	if(!e) { e = window.event; }
	if(e) { 
	if (e.keyCode) { whahapeen= e.keyCode; }
	else if (e.which) { whahapeen = e.which; }
	    }
	if(whahapeen != 9) {$('error_' + div).hide();
	$('error_default').hide();
	$('error_' + div + '_outline').className = 'jno';
   }
     },
	  jclear_this:function(jbox) {
      if(jbox.value == "Additional instructions or comments here. Also add any special instructions pertaining to this item.") {
     jbox.value = '';
      }
    },
//check characters ...
 Check_Chars:function(jbox,x) {
    var max_cars = 2000;
    if(jbox.value == "Additional instructions or comments here. Also add any special instructions pertaining to this item.") {
    jbox.value = '';
    }
   var chars_left = max_cars - jbox.value.length;
    if(chars_left < 10 && chars_left >= 0) {
    chars_left = '<font color="yellow"><B>' + chars_left + '</B></font>';
    }
    if(chars_left < 0) {
    chars_left = '<font color="red"><B>' + chars_left + '</B></font>';
    $('error_additional_comments').show();
     }
   $('chars_left').innerHTML = chars_left;
    },
	populate_shipping:function(c) {
    if(c == 1) {
    $('sAddress').value = $('bAddress').value;
    $('sAddress1').value = $('bAddress1').value;
    $('sCity').value = $('bCity').value;
    $('sState').value = $('bState').value;
    $('sZip').value = $('bZip').value;
   } else {
   $('sAddress').value = "";
   $('sAddress1').value = "";
   $('sCity').value = "";
   $('sState').value = "";
   $('sZip').value = "";
     }
   },
   show_hide:function(div) {
   //alert($(div).visible());
   if($(div)) {
      if($(div).visible() == true) {
	  //alert('ha?');
	  Effect.BlindUp(div);
	  } else {
      Effect.BlindDown(div);
        }
     }
    },
 use_card_onfile:function(o) {
 this.clear_errs();
 $('ccnum_onfile').value = o;
    },
 clear_errs:function(e) {
 var pymtValue = Form.getInputs('checkout','radio','cpymt').find(function(radio) { return radio.checked; }).value;
 
  if(pymtValue!="Credit Card") {
  $('paybycreditcard').hide();
  }
 $('error_default').hide();
 $('error_no_payment').hide();
 $('error_no_payment_outline').className = 'jno';
  },
/* Validate credit card number. */
CheckDaCCNumber:function(ccnum,derr) {
    if (ccnum.length == 0) {
    $('error_' + derr + '_outline').className = 'jno';
	Effect.Appear('error_Card_Number');
    jerr=1;return false;
     }
	
   /* check card type */
   if (!this.validateCreditCard(ccnum)) {
   Effect.Appear('error_Card_Number');
   $('error_' + derr + '_outline').className = 'jno';
    jerr=1;return false;
	  }
  },
/* validate month */
    vdCCmonth:function(mnth) {
     if(isNaN(mnth) || !mnth) {
     Effect.Appear('error_exp_date');
     jerr=1;return false;
     }
	 /* get rid of leading zero */
     if(mnth.substr(0,1) == 0 && mnth.length==2) {
     mnth = mnth.substr(1,1);
	  }
	//make sure it's 1-12.//
    if ((mnth < 1) || (mnth > 12)) {
    Effect.Appear('error_exp_date');
    jerr=1;return false;
     }
	
  },
 
/* Validate CC year */
vdCCYear:function(yer) {
    
	 if(isNaN(yer) || !yer) {
     Effect.Appear('error_exp_date');
     jerr=1;return false;
     }
	 /* get rid of 4 digit year in case 
	    user entered full expiri date */
	 var yere = yer;
	 if(yer.length == 4) {
	 yer = yer.substr(2,2);
	   } else {
	 yere = "20" + yer;
	    }
  
 /* get the current year */
 var today = new Date();
 var jyear = today.getYear();
 var jmonth = today.getMonth();
 
 if(jyear<2000){ jyear=jyear+1900; }
 jyear += "";
 var jyear2 = jyear;
 //alert(jyear);
     jyear = jyear.substr(2,2);
     /* make sure it's at least this year */
     if(yer < jyear) {
     $('error_exp_date').innerHTML = crt_errs[3];
	 Effect.Appear('error_exp_date');
     jerr=1;return false;
     }
	 
	 /* check month and year */
	 var mnth = $('exp_month').value;
	 
	 //200901,200902,200908	 
	 var expdate = yere + mnth;
	 var curmnthyr = '';
	 //add zero to month less then 10
	 //ie 1 to 01, 2 to 02 etc..
	 if(jmonth < 10) {
	   jmonth = "0" + jmonth;
	     }
	 
	 curmnthyr = jyear2 + jmonth;
	 curmnthyr = eval(curmnthyr);
	 
      //If experation date user entered less 
	  // then the current date
	  // alert user...
	  //alert(expdate + " Exp Date: " + curmnthyr);
	  
	  if(expdate < curmnthyr) {
	  $('error_exp_date').innerHTML = crt_errs[3];
	   Effect.Appear('error_exp_date');
	   jerr=1;return false;
	    }
  },

// Credit Card Validation Javascript
// copyright 12th May 2003, by Stephen Chapman, Felgall Pty Ltd
// You have permission to copy and use this javascript provided that
// the content of the script is not changed in any way.
validateCreditCard:function(s) {
//function cardval(s) {
// remove non-numerics
var v = "0123456789";
var w = "";
for (i=0; i < s.length; i++) {
x = s.charAt(i);
if (v.indexOf(x,0) != -1)
w += x;
}
// validate number
j = w.length / 2;
if (j < 6.5 || j > 8 || j == 7) return false;
k = Math.floor(j);
m = Math.ceil(j) - k;
c = 0;
for (i=0; i<k; i++) {
a = w.charAt(i*2+m) * 2;
c += a > 9 ? Math.floor(a/10 + a%10) : a;
}
for (i=0; i<k+m; i++) c += w.charAt(i*2+1-m) * 1;
return (c%10 == 0);
},
  display_input:function(fnm,n) {
  /* Show form elements. When a user clicks on
  a field. Hide the div and open the input tag
  for editing. */
  var fnm1;
  if(!fnm.id) {
  fnm1 = fnm + "In";
   } else {
  fnm1 = fnm.id + "In";
   }
   if(!n) {
  $(fnm1).show();
  $(fnm.id).hide();
  $(fnm1).focus();
   } else {
  $(fnm1).hide();
  $(fnm).innerHTML = $(fnm1).value;
  $(fnm).show(); 
     }
	 
    },
 change_pymnt:function(pymt) {
 /* change or modify payment information */
   if(!$('change_pymt').visible()) {
   Effect.BlindDown('change_pymt');
     }
   var pymtValue = Form.getInputs('checkout','radio','CHcpymt').find(function(radio) { return radio.checked; }).value;
   
    if(pymt != pymtValue) {
    $('cpymtIn').value = pymt;
	$('cpymt').innerHTML = pymt;
      }
	
    },
	get_artwork_form:function(url) {
	 var x = document.body.scrollTop;
     var y = document.body.scrollLeft;
	 //
     //$('artwork_form').style.top = (x + -100) + "px";
     $('artwork_form').style.left = (y + 300) + "px";
     var pars = 'faction=get_artwork_form';
	//alert(url);
  var myAjax = new Ajax.Request(
			url, 
			{
				method: 'get', 
				parameters: pars,
				onComplete: this.show_artwork_form
			});
   },
   show_artwork_form:function(request) {
   
   $('artwork_form').innerHTML = request.responseText;
   Effect.BlindDown('artwork_form');
   $('artwork_bg').show();
   
   }
 }
