/********************************************************************
 * Product Consultant                                               *
 *                                                                  * 
 * @version     0.2.0                                               *
 * @copyright   (c) Steven Nebes 2009                               *
 * @author      Steven Nebes                                        *
 * @email       steve@memorysuppliers.com                           *
 *                                                                  *
 * @depends     jQuery                                              *
 ********************************************************************/

;(function($) {
	$.fn.Consultant = function(options) {
		var settings = $.extend({
			category     : 'all',
			ddlMfgrName  : 'Select Manufacturer',
			ddlPLName    : 'Select Product Line',
			ddlModelName : 'Select Model',
			ddlMfgrID    : null,
			ddlPLID      : null,
			ddlModelID   : null,
			defaultMfgr  : null
		}, options);

		get = function(id) { return $('#'+id).get(0); };

		emptyDDL = function(id, selectName) {
			ddl = (typeof id == 'string')? get(id) : id;
			ddl.options.length = 0;
			ddl.options[0] = new Option(selectName, 'Select', true, true);
			ddl.disabled = true;
		};

		return this.each(function() {
			initDdlMfgr = function(event) {
				var d = get(settings.ddlMfgrID);
				d.options.length = 1;
				if (settings.defaultMfgr == null) {
					d.options[0] = new Option(settings.ddlMfgrName, 'Select', true, true);
				}
				else {
					d.options[0] = new Option(settings.defaultMfgr, settings.defaultMfgr, true, true);
				}
				d.selectedIndex = 0;
				
				loadDdlPL();
			};

			loadDdlMfgr = function(event) {
				if (get(settings.ddlMfgrID).options.length <= 1) {
					if (settings.defaultMfgr == null) {
						emptyDDL(settings.ddlPLID, settings.ddlPLName);
					}
					emptyDDL(settings.ddlModelID, settings.ddlModelName);
					$.getJSON('http://apps2.memorysuppliers.com/consultant/v1/getDropDown.php?ob=?', { cat: settings.category }, function(data) {
						var d = get(settings.ddlMfgrID);
						d.options.length = 0;

						if (data && data.length && data.length > 0) {
							d.options.length = data.length + 1;
							d.options[0] = new Option(settings.ddlMfgrName, 'Select', true, true);
							d.selectedIndex = 0;

							if (settings.defaultMfgr != null) {
								for (var i=0; i<data.length; ++i) {
									if (settings.defaultMfgr == data[i].name) {
										d.options[i+1] = new Option(data[i].name, data[i].value, true, true);
										d.selectedIndex = i+1;
									}
									else
										d.options[i+1] = new Option(data[i].name, data[i].value, false, false);
								}
							}
							else {
								for (var i=0; i<data.length; ++i)
									d.options[i+1] = new Option(data[i].name, data[i].value, false, false);
							}
						}

						loadDdlPL();
					});
				}
			};

			loadDdlPL = function(event) {
				emptyDDL(settings.ddlModelID, settings.ddlModelName);
				var el1 = get(settings.ddlMfgrID).options[get(settings.ddlMfgrID).selectedIndex].value;
				if (el1 != 'Select' && el1 != settings.ddlMfgrName && escape(el1) != 'null' && el1 != 'N.A.' && el1 != '') {
					emptyDDL(settings.ddlPLID, 'Loading...');
					$.getJSON('http://apps2.memorysuppliers.com/consultant/v1/getDropDown.php?ob=?', { cat : settings.category, mfgr : escape(el1) }, function(data) {
						var d = get(settings.ddlPLID);
						d.options.length = 0;

						if (data && data.length && data.length > 0) {
							d.options.length = data.length + 1;
							d.options[0] = new Option(settings.ddlPLName, 'Select', true, true);
							d.selectedIndex = 0;

							if (data.length == 1 && data[0].value == 'N.A.') {
								d.options[1] = new Option('All Models', 'Other', false, false);
							}
							else {
								for (var i=0; i<data.length; ++i) {
									d.options[i+1] = new Option(data[i].name, data[i].value, false, false);
								}
							}
						}
						d.disabled = false;

						loadDdlModel();
					});
				}
				else {
					emptyDDL(settings.ddlPLID, settings.ddlPLName);
				}
			};

			loadDdlModel = function(event) {
				var el1 = get(settings.ddlMfgrID).options[get(settings.ddlMfgrID).selectedIndex].value;
				var el2 = get(settings.ddlPLID).options[get(settings.ddlPLID).selectedIndex].value;
				if (el1 != 'Select' && el1 != settings.ddlMfgrName, escape(el1) != 'null' && el1 != 'N.A.' && el2 != 'Select' && el2 != settings.ddlPLName && escape(el2) != 'null' && el2 != 'N.A.') {
					emptyDDL(settings.ddlModelID);
					$.getJSON('http://apps2.memorysuppliers.com/consultant/v1/getDropDown.php?ob=?', { cat : settings.category, mfgr : escape(el1), pl : escape(el2) }, function(data) {
						var d = get(settings.ddlModelID);
						d.options.length = 0;

						if (data && data.length && data.length > 0) {
							d.options.length = data.length + 1;
							d.options[0] = new Option(settings.ddlModelName, 'Select', true, true);
							d.selectedIndex = 0;

							for (var i=0; i<data.length; ++i) {
								d.options[i+1] = new Option(data[i].name, data[i].value, false, false);
							}
						}
						d.disabled = false;
					});
				}
			};

			if (get(settings.ddlMfgrID) == null || get(settings.ddlMfgrID) == null || get(settings.ddlModelID) == null) {
				return false;
			}

			initDdlMfgr();
			$('#'+settings.ddlMfgrID).mouseover(loadDdlMfgr);
			$('#'+settings.ddlMfgrID).change(loadDdlPL);
			$('#'+settings.ddlPLID).change(loadDdlModel);
			$('#'+settings.ddlModelID).change(function() {
				var d = get(settings.ddlModelID).options[get(settings.ddlModelID).selectedIndex];
				window.location = "http://apps2.memorysuppliers.com/upgrade-for/+/" + d.value;
			});
		});
	};
})(jQuery);

Biz = window.Biz || {};
Biz.Common = window.Biz.Common || {};
Biz.Product = window.Biz.Product || {};


Biz.Common.Countdown = {
	timeleft : 3442,
	timer    : null,

	Update : function() {
		hrs = Biz.Common.Countdown.timeleft / 3600;
		min = (Biz.Common.Countdown.timeleft % 3600) / 60;
		sec = (Biz.Common.Countdown.timeleft % 3600) % 60;
		$('#t_countdown').text(Math.floor(hrs)+'h '+Math.floor(min)+'m '+sec+'s');
		Biz.Common.Countdown.timeleft = Biz.Common.Countdown.timeleft - 1;

		if (Biz.Common.Countdown.timeleft == 0)
			clearInterval(Biz.Common.Countdown.timer);
	},
	Init : function() {
		Biz.Common.Countdown.Update();
		Biz.Common.Countdown.timer = setInterval('Biz.Common.Countdown.Update();', 1000);
	}
};
Biz.Common.Countdown.Init();

Biz.Product.i18n = {
	update : function(d) {
		$('.i18n').each(function(i) {
			p = parseFloat(this.getAttribute('amount'));
			m = this.getAttribute('currency');
			s = this.getAttribute('i18n');
			if (p && m && m.length && s && s.length) {
				this.innerHTML = s + ((p * parseFloat(d[m.toUpperCase()])).toFixed(2));
			}
		});
	},
	run : function() {
		$.getJSON('http://docs.memorysuppliers.com/ajax/currency.php?cb=?', { i: 'usd', o: 'aud,cad,eur,gbp', of: 'json' }, Biz.Product.i18n.update);
	}
};
$(document).ready(Biz.Product.i18n.run);

Biz.Product.SwapImage = function(img) {
	$('#t_item_media_large img').attr('src', img);
};

Biz.Product.ShippingTime = {
	Update : function() {
		$.getJSON('http://docs.memorysuppliers.com/ajax/shipping_countdown.php?cb=?', function(d) {
			$('.t_item_shiptime').html(d.response);
		});
	},
	Init : function() {
		Biz.Product.ShippingTime.Update();
		setInterval('Biz.Product.ShippingTime.Update();', 300000);
	}
};
Biz.Product.ShippingTime.Init();

$(document).ready(function() {
	$('ul.tabs').tabs('> .pane');

	$('#t_bigcfg_drop').Consultant({ ddlMfgrID : 't_bigcfg_drop_1', ddlPLID : 't_bigcfg_drop_2', ddlModelID : 't_bigcfg_drop_3' });
	$('#t_uc_footer').Consultant({ ddlMfgrID : 't_uc_footer_1', ddlPLID : 't_uc_footer_2', ddlModelID : 't_uc_footer_3' });
	$('#t_rcol_cfg_drop').Consultant({ ddlMfgrID : 't_rcol_cfg_drop_1', ddlPLID : 't_rcol_cfg_drop_2', ddlModelID : 't_rcol_cfg_drop_3' });
});

