if (!VARS) var VARS = new Object();
VARS['zone'] = 'zone';
VARS['code'] = 'code';
VARS.zc_check = 0;

(function($){
    /**
     * jQuery delayed event execution.
     */
    $.fn.delay = function(options) {
        var timer;
        var delayImpl = function(eventObj) {
            if (timer != null) {
                clearTimeout(timer);
            }
            var newFn = function() {
                options.fn(eventObj);
            };
            timer = setTimeout(newFn, options.delay);
        }

        return this.each(function() {
            var obj = $(this);
            obj.bind(options.event, function(eventObj) {
                 delayImpl(eventObj);
            });
        });
    };
})(jQuery);

function showhide(id,bool, block){
	var el = document.getElementById(id);
	if (block) block = 'block';
	else block = '';
	if (el){
		var style = (bool) ? block :'none';
	}
	el.style.display = style;
}

function changeUser(upd){
	showhide('login_bb', 0);
	showhide('student_bb', 1);
}

var country_types = [];
country_types['state'] = { zone:1,code:1,zone_label:'State', code_label:'Zipcode' };
country_types['territory'] = { zone:1,code:1,zone_label:'Territory', code_label:'Postal Code' };
country_types['province'] = { zone:1,code:1,zone_label:'Province', code_label:'Postal Code' };

var country_format = [];
country_format['AU'] = 'territory'; 	// Austrailia
country_format['AT'] = 'province'; 	// Austria
country_format['CA'] = 'province'; 	// Canada
country_format['DE'] = 'province'; 	// Germany
country_format['ES'] = 'province'; 	// Spain
country_format['CH'] = 'province'; 	// Switzerland
country_format['US'] = 'state';		 //USA

var zone_lists = {"AU":{"ACT":"Australian Capital Territory","NSW":"New South Wales","NT":"Northern Territory","QLD":"Queensland","SA":"South Australia","TAS":"Tasmania","VIC":"Victoria","WA":"Western Australia"},"AT":{"BL":"Burgenland","KN":"K\u00e4rtnen","NO":"Niedersterreich","OO":"Obersterreich","SB":"Salzburg","ST":"Steiermark","TI":"Tirol","VB":"Voralberg","WI":"Wien"},"CA":{"AB":"Alberta","BC":"British Columbia","MB":"Manitoba","NB":"New Brunswick","NF":"Newfoundland","NT":"Northwest Territories","NS":"Nova Scotia","NU":"Nunavut","ON":"Ontario","PE":"Prince Edward Island","QC":"Quebec","SK":"Saskatchewan","YT":"Yukon Territory"},"DE":{"BAW":"Baden-Wrttemberg","BAY":"Bayern","BER":"Berlin","BRG":"Brandenburg","BRE":"Bremen","HAM":"Hamburg","HES":"Hessen","MEC":"Mecklenburg-Vorpommern","NDS":"Niedersachsen","NRW":"Nordrhein-Westfalen","RHE":"Rheinland-Pfalz","SAR":"Saarland","SAS":"Sachsen","SAC":"Sachsen-Anhalt","SCN":"Schleswig-Holstein","THE":"Thringen"},"163":{"PW":"Palau"},"ES":{"A Corua":"A Corua","Alava":"Alava","Albacete":"Albacete","Alicante":"Alicante","Almeria":"Almeria","Asturias":"Asturias","Avila":"Avila","Badajoz":"Badajoz","Baleares":"Baleares","Barcelona":"Barcelona","Burgos":"Burgos","Caceres":"Caceres","Cadiz":"Cadiz","Cantabria":"Cantabria","Castellon":"Castellon","Ceuta":"Ceuta","Ciudad Real":"Ciudad Real","Cordoba":"Cordoba","Cuenca":"Cuenca","Girona":"Girona","Granada":"Granada","Guadalajara":"Guadalajara","Guipuzcoa":"Guipuzcoa","Huelva":"Huelva","Huesca":"Huesca","Jaen":"Jaen","La Rioja":"La Rioja","Las Palmas":"Las Palmas","Leon":"Leon","Lleida":"Lleida","Lugo":"Lugo","Madrid":"Madrid","Malaga":"Malaga","Melilla":"Melilla","Murcia":"Murcia","Navarra":"Navarra","Ourense":"Ourense","Palencia":"Palencia","Pontevedra":"Pontevedra","Salamanca":"Salamanca","Santa Cruz de Tenerife":"Santa Cruz de Tenerife","Segovia":"Segovia","Sevilla":"Sevilla","Soria":"Soria","Tarragona":"Tarragona","Teruel":"Teruel","Toledo":"Toledo","Valencia":"Valencia","Valladolid":"Valladolid","Vizcaya":"Vizcaya","Zamora":"Zamora","Zaragoza":"Zaragoza"},"CH":{"AG":"Aargau","AR":"Appenzell Ausserrhoden","AI":"Appenzell Innerrhoden","BL":"Basel-Landschaft","BS":"Basel-Stadt","BE":"Bern","FR":"Freiburg","GE":"Genf","GL":"Glarus","JU":"Jura","LU":"Luzern","NE":"Neuenburg","NW":"Nidwalden","OW":"Obwalden","SH":"Schaffhausen","SZ":"Schwyz","SO":"Solothurn","SG":"St. Gallen","TI":"Tessin","TG":"Thurgau","UR":"Uri","VD":"Waadt","VS":"Wallis","ZH":"Zrich","ZG":"Zug"},"US":{"AL":"Alabama","AK":"Alaska","AS":"American Samoa","AZ":"Arizona","AR":"Arkansas","AF":"Armed Forces Africa","AA":"Armed Forces Americas","AC":"Armed Forces Canada","AE":"Armed Forces Europe","AM":"Armed Forces Middle East","AP":"Armed Forces Pacific","CA":"California","CO":"Colorado","CT":"Connecticut","DE":"Delaware","DC":"District of Columbia","FM":"Federated States Of Micronesia","FL":"Florida","GA":"Georgia","GU":"Guam","HI":"Hawaii","ID":"Idaho","IL":"Illinois","IN":"Indiana","IA":"Iowa","KS":"Kansas","KY":"Kentucky","LA":"Louisiana","ME":"Maine","MH":"Marshall Islands","MD":"Maryland","MA":"Massachusetts","MI":"Michigan","MN":"Minnesota","MS":"Mississippi","MO":"Missouri","MT":"Montana","NE":"Nebraska","NV":"Nevada","NH":"New Hampshire","NJ":"New Jersey","NM":"New Mexico","NY":"New York","NC":"North Carolina","ND":"North Dakota","MP":"Northern Mariana Islands","OH":"Ohio","OK":"Oklahoma","OR":"Oregon","PA":"Pennsylvania","PR":"Puerto Rico","RI":"Rhode Island","SC":"South Carolina","SD":"South Dakota","TN":"Tennessee","TX":"Texas","UT":"Utah","VT":"Vermont","VI":"Virgin Islands","VA":"Virginia","WA":"Washington","WV":"West Virginia","WI":"Wisconsin","WY":"Wyoming"}};

//simplified
zone_lists["US"] = {"AL":"Alabama","AK":"Alaska","AZ":"Arizona","AR":"Arkansas","CA":"California","CO":"Colorado","CT":"Connecticut","DE":"Delaware","DC":"District of Columbia","FL":"Florida","GA":"Georgia","HI":"Hawaii","ID":"Idaho","IL":"Illinois","IN":"Indiana","IA":"Iowa","KS":"Kansas","KY":"Kentucky","LA":"Louisiana","ME":"Maine","MD":"Maryland","MA":"Massachusetts","MI":"Michigan","MN":"Minnesota","MS":"Mississippi","MO":"Missouri","MT":"Montana","NE":"Nebraska","NV":"Nevada","NH":"New Hampshire","NJ":"New Jersey","NM":"New Mexico","NY":"New York","NC":"North Carolina","ND":"North Dakota","OH":"Ohio","OK":"Oklahoma","OR":"Oregon","PA":"Pennsylvania","RI":"Rhode Island","SC":"South Carolina","SD":"South Dakota","TN":"Tennessee","TX":"Texas","UT":"Utah","VT":"Vermont","VA":"Virginia","WA":"Washington","WV":"West Virginia","WI":"Wisconsin","WY":"Wyoming",
'NULL':'',"AS":"American Samoa","AF":"Armed Forces Africa","AA":"Armed Forces Americas","AC":"Armed Forces Canada","AE":"Armed Forces Europe","AM":"Armed Forces Middle East","AP":"Armed Forces Pacific","APO":"APO","FM":"Federated States Of Micronesia","FPO":"FPO","GU":"Guam","MH":"Marshall Islands","PR":"Puerto Rico"};

function setOptions(id, opts, first, setTo){
	var oo = 0;
	el = document.getElementById(id);
	if (el == null) return;
	if(!el){
		if (VARS['zone'] == 'state') addrType('zone');
		else if (VARS['zone'] == 'zone') addrType('state');
		VARS.zc_check++;
		if (VARS.zc_check < 4) setOptions(id, opts, first, setTo);
	}
	
	el.options.length = 0;

	if (first){
		el.options[0] = new Option(first.txt,first.val);
		oo++;
	}
	for(opt in opts){
		el.options[oo] = new Option(opts[opt], opt);
		oo++;
	}
	if (setTo) el.value = setTo;
}

function addrType(type){
	switch(type){
		case 'state':
			VARS['zone'] = 'state';
			VARS['code'] = 'zip';
		break;
		case 'zone':
			VARS['zone'] = 'zone';
			VARS['code'] = 'code';
		break;
	}
}

if(typeof updateShipping !== 'function') function updateShipping(){};

function checkCountry(div, id, setTo, skipship){
	var ftype = country_format[id];
	if (id == undefined) return;
	var strid = id.toString();
	if (ftype)	var format = country_types[ftype];

	if (div) div += '_';
	if (format){
		showhide(div+VARS['zone']+'list', format.zone);
		showhide(div+VARS['code']+'list', format.code);
		if (format.zone_label) $('#lbl_'+div+VARS['zone']).html(format.zone_label+':');
		if (format.code_label) $('#lbl_'+div+VARS['code']).html(format.code_label+':');
		if (zone_lists[strid]){
			setOptions(div+VARS['zone'], zone_lists[strid], {txt:' -- Select -- ', val:''}, setTo);
		}
	} else {
		showhide(div+VARS['zone']+'list', 0);
		showhide(div+VARS['code']+'list', 1);
		$('#lbl_'+div+VARS['code']).html('Postal Code:');
	}
	if (!skipship) updateShipping();
}

function checkCCType(str){
	var acct = str.replace(' ', '');
	var acct = acct.replace('-','');

	var acct2 = Number(acct.substr(0,2));
	var acct1 = Number(acct.substr(0,1));
	var acct4 = Number(acct.substr(0,4));
	var active = '';
	var type = '';

	//checks
	if (acct1 == '4') type = 'visa';
	else if(acct2 >= 51 && acct2 <= 55) type = 'mc';
	else if(acct2 >= 34 && acct2 <= 37) type = 'amex';
	else if (acct4 == 6011) type = 'disc';

	if (type){
		active = 'cc_'+type;
		var opc = 0.1;
		$('#cc_type').val(type.toUpperCase());
	} else{
		var opc = 0.8;
		$('#cc_type').val('');
	}
	//set opacity
	$('div.cc_types').each(function(el){
		if (this.id == active){
			el.setOpacity(1.0);
		} else {
			el.setOpacity(opc);
		}
	});
}

function removeCartItem(id){
	var data = new Object();
	data.action = 'removeCartItem';
	data.id = id;

	var json = $.post(ROOT_URL + 'cart/json', data, function(src){
		if(src.bool){
			$('#sc_'+id).remove();
			if ($('#os_'+id)) $('os_'+id).remove();
			if (src.total){
				$('#sc_total').html(src.total);
				$('sc_ct_items').html(src.ct_items);
				if (src.no_items == true){
					$('#sc_total').removeClass('side_total');
					$('#sc_total').html('<p align="center">Your cart is empty</p>');
				} else {
					$('#sc_total').html(src.total);
					if ($('#os_total')) $('#os_total').html(src.total);
					if ($('#os_sub')) $('#os_sub').html(src.total);
				}
			}
		}
	}, 'json');
}

