// configuration
var book_price = 39.00;
var tax_rate = .08;
var currency = "eur";
var thank_you_pseudo_url = '/tilaus/kiitos';

var book_discount = 9.1;
//var total_price = 29.00;
//var total_price = 34.90;
var total_price = 39.00;
var quantity = 1;
//var total_tax = 2.15; //29.00
//var total_tax = 2.59; //34.90
var total_tax = 2.89;

var track_total_price = 0;
var track_total_tax = 0;
var track_quantity = 0;
var track_city = '';
var track_book_discount = 0;
var track_code_sku = '';
var track_code_name = '';
var track_customer = '';

function stopRKey(evt) {
  var evt = (evt) ? evt : ((event) ? event : null);
  var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
  if ((evt.keyCode == 13) && (node.type=="text"))  {return false;}
}

document.onkeypress = stopRKey; 
//document.forms['searchform'].onkeypress = null;

function showMe (it, box) {
  var vis = (box.checked) ? "block" : "none";
  document.getElementById(it).style.display = vis;
}
function calculate_total() {

  check_code(); // redeem discount code

  // integer check
  if (isNaN(parseInt(document.getElementById('qty').value))) {
    document.getElementById('qty').value = '1';
  } else {
    document.getElementById('qty').value = parseInt(document.getElementById('qty').value);
  }

  quantity = document.getElementById('qty').value;
  total_price = quantity * (book_price - book_discount);

  document.getElementById('books_price').value = book_price.toFixed(2) + ' ' + currency + ' / kpl';

  document.getElementById('delivery_price').value = '0.00 ' + currency;

  document.getElementById('books_qty').value = 
    quantity + " x Kirja: Hyvejohtajuus";

  val = (book_price - book_discount) * parseFloat(document.getElementById('qty').value);
  document.getElementById('total_price').value = val.toFixed(2) + ' ' + currency;

  val = ((book_price - book_discount) * parseFloat(document.getElementById('qty').value)) - 
    ((book_price - book_discount) * parseFloat(document.getElementById('qty').value) / (1 + tax_rate));
  total_tax = val.toFixed(2);
  document.getElementById('tax').value = total_tax + ' ' + currency;

  document.getElementById('breakdown_table').style.display = "block";
}
function check_code() {
  if (MD5(document.getElementById('code').value) == 'a28d5df5642a75a87078493a342bd036') {
    document.getElementById('code_row').style.display = '';
    document.getElementById('code_text').value = 'Smilehouse-alennus';
    document.getElementById('code_value').value = '-10.00 ' + currency + ' / kpl';
    book_discount = 10;
  } else if (MD5(document.getElementById('code').value) == 'd4c24b7556dbf864094680b9028e8ee0') { // jason
    document.getElementById('code_row').style.display = '';
    document.getElementById('code_text').value = 'Alennus (JAS)';
    document.getElementById('code_value').value = '-10.00 ' + currency + ' / kpl';
    book_discount = 10;
  } else if (MD5(document.getElementById('code').value) == '42c79deb2d9e734c28681fcb02e57d0c') { // markku
    document.getElementById('code_row').style.display = '';
    document.getElementById('code_text').value = 'Alennus (MAR)';
    document.getElementById('code_value').value = '-10.00 ' + currency + ' / kpl';
    book_discount = 10;
  } else if (MD5(document.getElementById('code').value) == '70edcf614315e258156cd62764d560c6') { // jussi
    document.getElementById('code_row').style.display = '';
    document.getElementById('code_text').value = 'Alennus (JUS)';
    document.getElementById('code_value').value = '-10.00 ' + currency + ' / kpl';
    book_discount = 10;
  } else if (MD5(document.getElementById('code').value) == '876cf6125a65927acca388b0409a2e95') { // oskari
    document.getElementById('code_row').style.display = '';
    document.getElementById('code_text').value = 'Alennus (OSK)';
    document.getElementById('code_value').value = '-10.00 ' + currency + ' / kpl';
    book_discount = 10;
  } else if (MD5(document.getElementById('code').value) == 'ebc9e18b3e41bdd2965770301f4e4cfa') { // santi
    document.getElementById('code_row').style.display = '';
    document.getElementById('code_text').value = 'Alennus (SAN)';
    document.getElementById('code_value').value = '-10.00 ' + currency + ' / kpl';
    book_discount = 10;
  } else if (MD5(document.getElementById('code').value) == '3c184a3bd27d69f8747287d10e7a742d') { // isanpaiva 2009
    document.getElementById('code_row').style.display = '';
    document.getElementById('code_text').value = 'Isi-alennus 2009';
    document.getElementById('code_value').value = '-10.00 ' + currency + ' / kpl';
    book_discount = 10;
  } else if (MD5(document.getElementById('code').value) == 'aa75ae586650572c4568dc0020a8a88a') { // joulu 2009
    document.getElementById('code_row').style.display = '';
    document.getElementById('code_text').value = 'Jouluale 2009';
    document.getElementById('code_value').value = '-4.10 ' + currency + ' / kpl';
    book_discount = 4.1;
  } else if (MD5(document.getElementById('code').value) == '51520e276cb88582d19c307952d17409') { // YO2010
    document.getElementById('code_row').style.display = '';
    document.getElementById('code_text').value = 'YO-ale 2010';
    book_discount = 9.1;
    document.getElementById('code_value').value = '-9.10 ' + currency + ' / kpl';
  } else if (MD5(document.getElementById('code').value) == 'c05db3061f257c7a163298613e673560') { // AIESEC Jyvaskyla
    document.getElementById('code_row').style.display = '';
    document.getElementById('code_text').value = 'AIESEC-alennus (J)';
    document.getElementById('code_value').value = '-10.00 ' + currency + ' / kpl';
    book_discount = 10;
  } else if (MD5(document.getElementById('code').value) == '25452608637ee849499c684e48b68ff3') { // AIESEC Helsinki
    document.getElementById('code_row').style.display = '';
    document.getElementById('code_text').value = 'AIESEC-alennus (H)';
    document.getElementById('code_value').value = '-10.00 ' + currency + ' / kpl';
    book_discount = 10;
  } else {
    document.getElementById('code_row').style.display = 'none';
    document.getElementById('code_text').value = '';
    document.getElementById('code_value').value = '';
    book_discount = 0;
  }
}
function prepare_tracking() {
  track_total_price = total_price;
  track_total_tax = total_tax;
  track_quantity = quantity;
  track_book_discount = 0 - book_discount;
  track_city = document.getElementById('billing_city').value;
  track_customer = document.getElementById('billing_name').value;
  track_code_sku = document.getElementById('code').value;
  track_code_name = document.getElementById('code_text').value;
}
function track_order() {
try {
  var oid = new Date().getTime() + '(' + track_customer + ')'; 

/*
  pageTracker._addTrans(
    oid,                                     // Order ID
    "",                            // Affiliation
    track_total_price,                                    // Total
    track_total_tax,                                     // Tax
    "0",                                        // Shipping
    track_city,                                 // City
    "",                               // State
    "Finland"                                       // Country
  );
*/
  _gaq.push(['_addTrans',
    oid,                                     // Order ID
    "",                            // Affiliation
    track_total_price,                                    // Total
    track_total_tax,                                     // Tax
    "0",                                        // Shipping
    track_city,                                 // City
    "",                               // State
    "Finland"                                       // Country
  ]);

/*
  pageTracker._addItem(
    oid,                                     // Order ID
    "HJ",                                     // SKU
    "Hyvejohtajuus-kirja",                                  // Product Name 
    "Kirjat",                             // Category
    book_price,                                    // Price
    track_quantity                                         // Quantity
  );
*/

  _gaq.push(['_addItem',
    oid,                                     // Order ID
    "HJ",                                     // SKU
    "Hyvejohtajuus-kirja",                                  // Product Name 
    "Kirjat",                             // Category
    book_price,                                    // Price
    track_quantity                                         // Quantity
  ]);

  if (book_discount > 0) {
/*
  pageTracker._addItem(
    oid,                                     // Order ID
    track_code_sku,                                     // SKU
    track_code_name,                                  // Product Name 
    "Alennukset",                             // Category
    track_book_discount,                                    // Price
    track_quantity                                         // Quantity
  );
*/
  _gaq.push(['_addItem',
    oid,                                     // Order ID
    track_code_sku,                                     // SKU
    track_code_name,                                  // Product Name 
    "Alennukset",                             // Category
    track_book_discount,                                    // Price
    track_quantity                                         // Quantity
  ]);
  } // ends if discount

  //pageTracker._trackTrans();
  _gaq.push(['_trackTrans']);

  //pageTracker._trackPageview(thank_you_pseudo_url);
  _gaq.push(['_trackPageview',thank_you_pseudo_url]);

} catch(err) {}
} // ends function track_order


/**
*
*  MD5 (Message-Digest Algorithm)
*  http://www.webtoolkit.info/
*
**/
 
var MD5 = function (string) {
 
	function RotateLeft(lValue, iShiftBits) {
		return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
	}
 
	function AddUnsigned(lX,lY) {
		var lX4,lY4,lX8,lY8,lResult;
		lX8 = (lX & 0x80000000);
		lY8 = (lY & 0x80000000);
		lX4 = (lX & 0x40000000);
		lY4 = (lY & 0x40000000);
		lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
		if (lX4 & lY4) {
			return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
		}
		if (lX4 | lY4) {
			if (lResult & 0x40000000) {
				return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
			} else {
				return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
			}
		} else {
			return (lResult ^ lX8 ^ lY8);
		}
 	}
 
 	function F(x,y,z) { return (x & y) | ((~x) & z); }
 	function G(x,y,z) { return (x & z) | (y & (~z)); }
 	function H(x,y,z) { return (x ^ y ^ z); }
	function I(x,y,z) { return (y ^ (x | (~z))); }
 
	function FF(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	};
 
	function GG(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	};
 
	function HH(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	};
 
	function II(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	};
 
	function ConvertToWordArray(string) {
		var lWordCount;
		var lMessageLength = string.length;
		var lNumberOfWords_temp1=lMessageLength + 8;
		var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
		var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
		var lWordArray=Array(lNumberOfWords-1);
		var lBytePosition = 0;
		var lByteCount = 0;
		while ( lByteCount < lMessageLength ) {
			lWordCount = (lByteCount-(lByteCount % 4))/4;
			lBytePosition = (lByteCount % 4)*8;
			lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount)<<lBytePosition));
			lByteCount++;
		}
		lWordCount = (lByteCount-(lByteCount % 4))/4;
		lBytePosition = (lByteCount % 4)*8;
		lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
		lWordArray[lNumberOfWords-2] = lMessageLength<<3;
		lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
		return lWordArray;
	};
 
	function WordToHex(lValue) {
		var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;
		for (lCount = 0;lCount<=3;lCount++) {
			lByte = (lValue>>>(lCount*8)) & 255;
			WordToHexValue_temp = "0" + lByte.toString(16);
			WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
		}
		return WordToHexValue;
	};
 
	function Utf8Encode(string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
 
		for (var n = 0; n < string.length; n++) {
 
			var c = string.charCodeAt(n);
 
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
 
		}
 
		return utftext;
	};
 
	var x=Array();
	var k,AA,BB,CC,DD,a,b,c,d;
	var S11=7, S12=12, S13=17, S14=22;
	var S21=5, S22=9 , S23=14, S24=20;
	var S31=4, S32=11, S33=16, S34=23;
	var S41=6, S42=10, S43=15, S44=21;
 
	string = Utf8Encode(string);
 
	x = ConvertToWordArray(string);
 
	a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;
 
	for (k=0;k<x.length;k+=16) {
		AA=a; BB=b; CC=c; DD=d;
		a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);
		d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
		c=FF(c,d,a,b,x[k+2], S13,0x242070DB);
		b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
		a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
		d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);
		c=FF(c,d,a,b,x[k+6], S13,0xA8304613);
		b=FF(b,c,d,a,x[k+7], S14,0xFD469501);
		a=FF(a,b,c,d,x[k+8], S11,0x698098D8);
		d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
		c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
		b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
		a=FF(a,b,c,d,x[k+12],S11,0x6B901122);
		d=FF(d,a,b,c,x[k+13],S12,0xFD987193);
		c=FF(c,d,a,b,x[k+14],S13,0xA679438E);
		b=FF(b,c,d,a,x[k+15],S14,0x49B40821);
		a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);
		d=GG(d,a,b,c,x[k+6], S22,0xC040B340);
		c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);
		b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
		a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);
		d=GG(d,a,b,c,x[k+10],S22,0x2441453);
		c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
		b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
		a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
		d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);
		c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
		b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);
		a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
		d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
		c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);
		b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
		a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
		d=HH(d,a,b,c,x[k+8], S32,0x8771F681);
		c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
		b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
		a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
		d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
		c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
		b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
		a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
		d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
		c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
		b=HH(b,c,d,a,x[k+6], S34,0x4881D05);
		a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
		d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
		c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
		b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
		a=II(a,b,c,d,x[k+0], S41,0xF4292244);
		d=II(d,a,b,c,x[k+7], S42,0x432AFF97);
		c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);
		b=II(b,c,d,a,x[k+5], S44,0xFC93A039);
		a=II(a,b,c,d,x[k+12],S41,0x655B59C3);
		d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
		c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
		b=II(b,c,d,a,x[k+1], S44,0x85845DD1);
		a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
		d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
		c=II(c,d,a,b,x[k+6], S43,0xA3014314);
		b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);
		a=II(a,b,c,d,x[k+4], S41,0xF7537E82);
		d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);
		c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
		b=II(b,c,d,a,x[k+9], S44,0xEB86D391);
		a=AddUnsigned(a,AA);
		b=AddUnsigned(b,BB);
		c=AddUnsigned(c,CC);
		d=AddUnsigned(d,DD);
	}
 
	var temp = WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);
 
	return temp.toLowerCase();
}
calculate_total();
