var ajaxObjects = new Array();
var selected_special_qt = 0;
var selected_special_p = 0;
var selected_special_sl = 0;
var selected_special_tt = 0;
var selected_product = 0;
var total_cost = 0;
var grand_total_cost = 0;
var cart_stotal_cost = 0;
var tax_value = 0;
var tax_rate = 0;
var discount_value = 0;
var shipping_rate = 0;
var discount_type = 0;
var	tmp_dis = 0;
var shipping_selected = false;
var is_red = false;


var quad_is_red = false;
var piping1_is_red = false;
var piping2_is_red = false;
var sl1_is_red = false;
var sl2_is_red = false;
var tt1_is_red = false;
var tt2_is_red = false;

var quad_IntervalId = 0;
var piping_IntervalId1 = 0;
var piping_IntervalId2 = 0;
var sl_IntervalId1 = 0;
var sl_IntervalId2 = 0;
var tt_IntervalId1 = 0;
var tt_IntervalId2 = 0;
var cart_loca_IntervalId = 0;

function get_product_id() {
	var tmp_m_id = "";
	var tmp_p_id = "";
	document.getElementById('prodid').value = '';

var o = document.getElementById('model');
		for (i = 0; i < o.length; i++) {
			if (o.options[i].selected && o.options[i].text != 'Please Select') {
				tmp_m_id = o.options[i].value;
			}
		}	
	
var o = document.getElementById('product');
		for (i = 0; i < o.length; i++) {
			if (o.options[i].selected && o.options[i].text != 'Please Select') {
				tmp_p_id = o.options[i].value;
			}
		}	

	if (trimspaces(tmp_m_id).length > 0 &&
		trimspaces(tmp_p_id).length > 0) {
		var ajaxIndex = ajaxObjects.length;
		ajaxObjects[ajaxIndex] = new sack();
		ajaxObjects[ajaxIndex].requestFile = 'ss_get_prod_id.php?mid=' + tmp_m_id + '&pid=' + tmp_p_id;
		ajaxObjects[ajaxIndex].onCompletion = function(){
		var dat = ajaxObjects[ajaxIndex].response;
			
		if (dat.length > 0){
		dat = decode(dat);
		dat_a = dat.split(",");
			
			for (i = 0; i < dat_a.length; i++) {
				var dat_aa = dat_a[i].split("-");
				if (tmp_p_id == dat_aa[0]) {
					if(typeof dat_aa[2] != "undefined")
						document.getElementById('prodid').value = encode(dat_aa[2]);			
					break;
				}
			}
		
	}
			
			
			document.getElementById('status_dv').style.display = 'none';
			
		};	// Specify function that will be executed after file has been found
		ajaxObjects[ajaxIndex].onLoading = function(){ttt();};
		ajaxObjects[ajaxIndex].runAJAX();
	}
}


function retrieve_data(str) {

		var o =document.getElementById(str);
		var mk_id = "";

		for (i = 0; i < o.length; i++) {
			if (o.options[i].selected)
				mk_id = o.options[i].value;
		}
		var ajaxIndex = ajaxObjects.length;
		ajaxObjects[ajaxIndex] = new sack();
		ajaxObjects[ajaxIndex].requestFile = 'ss_get_data.php?id=' + mk_id + '&ide=' + str;
		ajaxObjects[ajaxIndex].onCompletion = function(){populateSel(ajaxIndex,str);};	// Specify function that will be executed after file has been found
		ajaxObjects[ajaxIndex].onLoading = function(){ttt();};
		ajaxObjects[ajaxIndex].runAJAX();
    
}

function populateSel(ajaxIndex,str){
	
		selected_product = 0;
		calculate_subtotal();
if (str == 'make') {
	str1 = 'model';
	
	
	var m = document.getElementById(str1);
	m.options.length = 0;
	document.getElementById('product').options.length = 0;
	document.getElementById('product').options[0] = new Option("Please Select","");
	m.options[0] = new Option("Please Select","");
	var dat = ajaxObjects[ajaxIndex].response;

	if (trimspaces(dat).length > 0) {
	var tmp = decode(dat).split(",");
	for (i = 0; i < tmp.length; i++) {
		var ar = decode(tmp[i]).split("-");
		m.options[i+1] = new Option(decode(ar[1]),decode(ar[0]));
	}
	}
}
else if (str == 'model') {
	str1 = 'product';
	var price_str = "";
	var m = document.getElementById(str1);
	m.options.length = 0;
	m.options[0] = new Option("Please Select","");
	var dat = ajaxObjects[ajaxIndex].response;
	if (dat.length > 0) {
	var tmp = decode(dat).split(",");
		for (i = 0; i < tmp.length; i++) {
			var ar = decode(tmp[i]).split("-");
			m.options[i+1] = new Option(decode(ar[1]) + " - $" + decode(ar[2]),decode(ar[0]));
			price_str = price_str + "," + encode(ar[0] + "-" + ar[2]);
		}
	}
	if (price_str.length > 0)
		price_str = encode(price_str.substring(1));
		
	document.getElementById('prices').value = price_str;
}
	document.getElementById('status_dv').style.display = 'none';

}


function set_price() {
	var o = document.getElementById('product');
	var p = document.getElementById('prices');
	
	
	var product_id = "";
		for (i = 0; i < o.length; i++) {
			if (o.options[i].selected)
				product_id = o.options[i].value;
		}
	
		
	if (product_id.length > 0) {	
	var ar = decode(p.value).split(",");
	for (i = 0; i < ar.length; i++) {
		var ar1 = decode(ar[i]).split("-");
		if (product_id == decode(ar1[0]))
			selected_product = decode(ar1[1]);
	}
	} else {
		selected_product = 0;
	}
	
	calculate_subtotal();
	get_product_id();
}

function calculate_subtotal(){
	if (selected_product > 0) {
		total_cost = parseFloat(selected_product) + parseFloat(selected_special_qt) + parseFloat(selected_special_p) + parseFloat(selected_special_sl) + parseFloat(selected_special_tt);
		document.getElementById('T2').value = formatCurrency(total_cost);
		
	} else {
		total_cost = 0;
		document.getElementById('T2').value = '';
	}

}


function calculate_total(){
	
	tmp_dis = 0;
	if (discount_value > 0) {
		
			if (!shipping_selected)
				cart_stotal_cost = parseFloat(document.getElementById('SUBTH').value);	
		
			if (discount_type == 1)
				tmp_dis = formatCurrency(discount_value);
			else if (discount_type == 2)
				tmp_dis = formatCurrency((cart_stotal_cost * parseFloat(discount_value) / 100));

			

				
			document.getElementById('disc_tr').style.display = 'block';			
			document.getElementById('discsp').innerHTML = formatCurrency(tmp_dis);
						
	} else {
		if (document.getElementById('disc_tr').style.display == 'block') {	
			document.getElementById('discsp').innerHTML = '&nbsp;';
			document.getElementById('disc_tr').style.display = 'none';	
		}
	}

		if (tax_rate > 0) {
			tax_value = formatCurrency(((cart_stotal_cost - parseFloat(tmp_dis)) * tax_rate / 100));
			document.getElementById('TX').innerHTML = tax_value;
		}
		
	if (shipping_selected) {
	grand_total_cost = (cart_stotal_cost - parseFloat(tmp_dis)) + parseFloat(tax_value) + parseFloat(shipping_rate);
		document.getElementById('TOT').innerHTML = formatCurrency(grand_total_cost);
		document.getElementById('TOTH').value = formatCurrency(grand_total_cost);
	}
}



function set_ship_price(kkk) {
	var o = document.getElementById('locatio');
	var loc_id = "";
		for (i = 0; i < o.length; i++) {
			if (o.options[i].selected)
				loc_id = o.options[i].value;
		}

	if (loc_id.length > 0) {		
		var ajaxIndex = ajaxObjects.length;
		ajaxObjects[ajaxIndex] = new sack();
		ajaxObjects[ajaxIndex].requestFile = 'ss_get_data.php?id=' + loc_id + '&ide=tx';
		ajaxObjects[ajaxIndex].onCompletion = function(){
			document.getElementById('status_dv').style.display = 'none';
			var dat = ajaxObjects[ajaxIndex].response;
			
			
				cart_stotal_cost = parseFloat(document.getElementById('SUBTH').value);
				tax_rate = parseFloat(dat);
				tax_value = formatCurrency(((cart_stotal_cost - parseFloat(tmp_dis)) * tax_rate / 100));
				document.getElementById('TX').innerHTML = tax_value;
	
			if (kkk)
			shipping_rate = "0.00";
			else
			shipping_rate = document.getElementById('sr' + loc_id).value;
			document.getElementById('T3').innerHTML = formatCurrency(shipping_rate);
			
						
			shipping_selected = true;
			stop_label_flash();
			calculate_total();
			
			
			
		};	// Specify function that will be executed after file has been found
		ajaxObjects[ajaxIndex].onLoading = function(){ttt();};
		ajaxObjects[ajaxIndex].runAJAX();
	} else {
		shipping_rate = 0;
		tax_value = 0;
		tax_rate = 0;
		shipping_selected = false;
		document.getElementById('TX').innerHTML = ' --- ';
		document.getElementById('T3').innerHTML = ' --- ';
		document.getElementById('TOT').innerHTML = ' --- ';

	}
	



	
	
				



	
			

}

function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + num + '.' + cents);
}




function decode(encStr) {

var base64s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

  var bits, decOut = '', i = 0;
  for(; i<encStr.length; i += 4){
    bits =
     (base64s.indexOf(encStr.charAt(i))    & 0xff) <<18 |
     (base64s.indexOf(encStr.charAt(i +1)) & 0xff) <<12 | 
     (base64s.indexOf(encStr.charAt(i +2)) & 0xff) << 6 |
      base64s.indexOf(encStr.charAt(i +3)) & 0xff;
    decOut += String.fromCharCode(
     (bits & 0xff0000) >>16, (bits & 0xff00) >>8, bits & 0xff);
    }
  if(encStr.charCodeAt(i -2) == 61)
    undecOut=decOut.substring(0, decOut.length -2);
  else if(encStr.charCodeAt(i -1) == 61)
    undecOut=decOut.substring(0, decOut.length -1);
  else undecOut=decOut;
  
  return unescape(undecOut);		//line add for chinese char
  }


function encode(decStr){

var base64s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

decStr=escape(decStr);		//line add for chinese char
  var bits, dual, i = 0, encOut = '';
  while(decStr.length >= i + 3){
    bits =
    (decStr.charCodeAt(i++) & 0xff) <<16 |
    (decStr.charCodeAt(i++) & 0xff) <<8  |
     decStr.charCodeAt(i++) & 0xff;
    encOut +=
     base64s.charAt((bits & 0x00fc0000) >>18) +
     base64s.charAt((bits & 0x0003f000) >>12) +
     base64s.charAt((bits & 0x00000fc0) >> 6) +
     base64s.charAt((bits & 0x0000003f));
    }
  if(decStr.length -i > 0 && decStr.length -i < 3){
    dual = Boolean(decStr.length -i -1);
    bits =
     ((decStr.charCodeAt(i++) & 0xff) <<16) |
     (dual ? (decStr.charCodeAt(i) & 0xff) <<8 : 0);
    encOut +=
      base64s.charAt((bits & 0x00fc0000) >>18) +
      base64s.charAt((bits & 0x0003f000) >>12) +
      (dual ? base64s.charAt((bits & 0x00000fc0) >>6) : '=') +
      '=';
    }
  return encOut
  }
  
  
  function ttt() {
	
	document.getElementById('status_dv').style.top = document.body.scrollTop + 5;
	document.getElementById('status_dv').style.left = document.body.clientWidth - 170;
	document.getElementById('status_dv').style.display = 'block';

}


function get_material_colors(sel_id1, sel_id2, border_id, border_id2 ) {

		var o =document.getElementById(sel_id1);
		var m_id = "";
		for (i = 0; i < o.length; i++) {
			if (o.options[i].selected)
				m_id = o.options[i].value;
		}
		
		if (border_id.length > 0)
		stopfleshing(sel_id1, border_id);
		
		var ajaxIndex = ajaxObjects.length;
		ajaxObjects[ajaxIndex] = new sack();
		ajaxObjects[ajaxIndex].requestFile = 'ss_get_data.php?id=' + m_id + '&ide=' + sel_id1;
		ajaxObjects[ajaxIndex].onCompletion = function(){
			
			

			var m = document.getElementById(sel_id2);
			m.options.length = 0;
			m.options[0] = new Option("Please Select","");
	
			var dat = ajaxObjects[ajaxIndex].response;

			if (dat.length > 0) {
			var tmp = decode(dat).split(",");
			for (i = 0; i < tmp.length; i++) {
				var ar = decode(tmp[i]).split("-");
				m.options[i+1] = new Option(decode(ar[1]),decode(ar[0]));
			}
			}
			document.getElementById('status_dv').style.display = 'none';
			start_border(border_id2);
			
		};	// Specify function that will be executed after file has been found
		ajaxObjects[ajaxIndex].onLoading = function(){ttt();};
		ajaxObjects[ajaxIndex].runAJAX();
    
}

function apply_discount() {

		var o =document.getElementById('disc');

	if (trimspaces(o.value).length) {	
		var ajaxIndex = ajaxObjects.length;
		ajaxObjects[ajaxIndex] = new sack();
		ajaxObjects[ajaxIndex].requestFile = 'ss_get_data.php?id=0&discode=' + trimspaces(o.value) + '&ide=discount';
		ajaxObjects[ajaxIndex].onCompletion = function(){
			
			var dat = ajaxObjects[ajaxIndex].response;
			if (trimspaces(dat).length > 0) {
				var tmp = decode(dat).split("-");
			
				discount_value = decode(tmp[0]);
				discount_type = decode(tmp[1]);
				calculate_total();
			} else {
				discount_value = 0;
				discount_type = 0;
				calculate_total();
			}
			
			
			
			document.getElementById('status_dv').style.display = 'none';
			

				
		};	// Specify function that will be executed after file has been found
		ajaxObjects[ajaxIndex].onLoading = function(){
			ttt();
		};
		ajaxObjects[ajaxIndex].runAJAX();
		
	} else {
				discount_value = 0;
				discount_type = 0;		
				calculate_total();
			}
	

}

function trimspaces(str) {
	return str.replace(/^\s+|\s+$/g,"");
}


function start_border(str) {
	if (str == "quad_sel_border") {
		quad_is_red = false;
		stop_border(quad_IntervalId);
		quad_IntervalId = setInterval ("fl('quad_sel_border', quad_is_red)", 200 );
	}
	else if (str == "piping_sel_border1") {
		piping1_is_red = false;
		stop_border(piping_IntervalId1);
		piping_IntervalId1 = setInterval ("fl('piping_sel_border1',piping1_is_red)", 200 );
	}	
	else if (str == "piping_sel_border2") {
		piping2_is_red = false;
		stop_border(piping_IntervalId2);
		piping_IntervalId2 = setInterval ("fl('piping_sel_border2',piping2_is_red)", 200 );
	}
	else if (str == "sl_sel_border1") {
		sl1_is_red = false;
		stop_border(sl_IntervalId1);
		sl_IntervalId1 = setInterval ("fl('sl_sel_border1',sl1_is_red)", 200 );
	}	
	else if (str == "sl_sel_border2") {
		sl2_is_red = false;
		stop_border(sl_IntervalId2);
		sl_IntervalId2 = setInterval ("fl('sl_sel_border2',sl2_is_red)", 200 );
	}
	else if (str == "tt_sel_border1") {
		tt1_is_red = false;
		stop_border(tt_IntervalId1);
		tt_IntervalId1 = setInterval ("fl('tt_sel_border1',tt1_is_red)", 200 );
	}	
	else if (str == "tt_sel_border2") {
		tt2_is_red = false;
		stop_border(tt_IntervalId2);
		tt_IntervalId2 = setInterval ("fl('tt_sel_border2',tt2_is_red)", 200 );
	}
}

function stop_border(IntervalId) {
	clearInterval(IntervalId);
}

function start_label_flash() {
	is_red = false;
	clearInterval(cart_loca_IntervalId);
	cart_loca_IntervalId = setInterval ("fl_label()",200);
}


function stop_label_flash() {
	document.getElementById('loca_label').style.color = '#FFFFFF';
	is_red = false;
	clearInterval(cart_loca_IntervalId);

}

function fl_label() {

	if (is_red) {
		document.getElementById('loca_label').style.color = '#FFFFFF';
		is_red = false;
	} else {
		document.getElementById('loca_label').style.color = '#FF0000';
		is_red = true;
	}
}


function fl(str,isred) {

	if (str == "quad_sel_border") quad_is_red = false;
	else if (str == "piping_sel_border1") piping1_is_red = false;
	else if (str == "piping_sel_border2") piping2_is_red = false;
	else if (str == "sl_sel_border1") sl1_is_red = false;
	else if (str == "sl_sel_border2") sl2_is_red = false;
	else if (str == "tt_sel_border1") tt1_is_red = false;
	else if (str == "tt_sel_border2") tt2_is_red = false;

	
	if (isred) {
		document.getElementById(str).style.borderStyle = 'solid';
		document.getElementById(str).style.borderWidth = '1px';
		document.getElementById(str).style.borderColor = '#FFFFFF';	
			if (str == "quad_sel_border") quad_is_red = false;
			else if (str == "piping_sel_border1") piping1_is_red = false;
			else if (str == "piping_sel_border2") piping2_is_red = false;
			else if (str == "sl_sel_border1") sl1_is_red = false;
			else if (str == "sl_sel_border2") sl2_is_red = false;
			else if (str == "tt_sel_border1") tt1_is_red = false;
			else if (str == "tt_sel_border2") tt2_is_red = false;	
	} else {
		document.getElementById(str).style.borderStyle = 'solid';
		document.getElementById(str).style.borderWidth = '1px';
		document.getElementById(str).style.borderColor = '#FF0000';
			if (str == "quad_sel_border") quad_is_red = true;
			else if (str == "piping_sel_border1") piping1_is_red = true;
			else if (str == "piping_sel_border2") piping2_is_red = true;
			else if (str == "sl_sel_border1") sl1_is_red = true;
			else if (str == "sl_sel_border2") sl2_is_red = true;
			else if (str == "tt_sel_border1") tt1_is_red = true;
			else if (str == "tt_sel_border2") tt2_is_red = true;	
	}
}

function stopfleshing(sel_id, border_id) {

	var o =document.getElementById(sel_id);
	for (i = 0; i < o.length; i++) {
		if (o.options[i].selected) {
			if (o.options[i].value != "") {
				if (border_id == "quad_sel_border")
					clearInterval(quad_IntervalId);
				else if (border_id == "piping_sel_border1")
					clearInterval(piping_IntervalId1);
				else if (border_id == "piping_sel_border2")
					clearInterval(piping_IntervalId2);
				else if (border_id == "sl_sel_border1")
					clearInterval(sl_IntervalId1);	
				else if (border_id == "sl_sel_border2")
					clearInterval(sl_IntervalId2);	
				else if (border_id == "tt_sel_border1")
					clearInterval(tt_IntervalId1);	
				else if (border_id == "tt_sel_border2")
					clearInterval(tt_IntervalId2);									
					document.getElementById(border_id).style.borderStyle = 'solid';
					document.getElementById(border_id).style.borderWidth = '1px';
					document.getElementById(border_id).style.borderColor = '#FFFFFF';
					
				
			}
		}
    }

}

function reset_selection(sel_id) {
	document.getElementById(sel_id).options[0].selected = true;
}