//
//
//  dependent javascript files:
//
//	/main/js/prototype.js
//	/main/js/scriptaculous.js
//
//




/* add to cart popup */
var AddToCart = {
	PreloadFlag: false,
	Init: function() {

		var image = new Image();
		var images = new Array();
		images[0] = 'http://devimages.apple.com/products/images/addtocart_overlay_bgbottom.png';
		images[1] = 'http://devimages.apple.com/products/images/addtocart_overlay_bgmiddle.png';
		images[2] = 'http://devimages.apple.com/products/images/addtocart_overlay_bgtop.png';
		images[2] = 'http://devimages.apple.com/products/images/btn_ok.gif';

		for (var i=0; i<images.length; i++) {
			image.src=images[i];
			if (i==images.length-1) this.PreloadFlag == true;
		}

		var div = $('main').getElementsByClassName('addtocart');
		var button = new Array();

		for (var i=0; i<div.length; i++) {
			button[i] = $t('a',div[i])[0];
			button[i].onclick = AddToCart.Popup;
			var href = button[i].href;
			
			var oOverlay = Builder.node('div', {'class':'addtocart_overlay'});
			var oOverlayDiv = $(div[i]).down('.popup');
			if (oOverlayDiv) {
				oOverlay.innerHTML = oOverlayDiv.innerHTML;
			} else {
				oOverlay.innerHTML = '<p>Your cart will reflect local currency.</p>';
				if (div[i].className.match(/membership/i)) {
					oOverlay.innerHTML += '<p>Apple Developer Connection Members must agree to the <a href="/membership/pdf/terms.pdf" target="_blank">ADC Membership Agreement</a>.</p>';
				} else if(div[i].className.match(/ticket/)) {
					oOverlay.innerHTML += '<p>You must be either an <a href="/products/">ADC Member</a> or <a href="/iphone/program/">Registered iPhone Developer</a> to activate your ticket.</p>';
				} else if(div[i].hasClassName('videodownload')) {
					oOverlay.innerHTML = '<p>You must be at least a free <a href="/products/">ADC Member</a> or <a href="/iphone/sdk1/">Registered iPhone Developer</a> to activate video downloads. Your cart will reflect local currency.</p>';
				}
			}
			oOverlay.innerHTML += '<a class="ok" href="'+href+'">OK</a> <a class="cancel">Cancel</a>';
			var cancelButton = $(oOverlay).getElementsByClassName('cancel')[0];
			cancelButton.div = div[i];
			cancelButton.onclick = AddToCart.Popup;
			
			var oPopup = Builder.node('div', {'class':'addtocart_popup', id:'addtocart_popup'+i, 'style':'display:none;'}, [
				Builder.node('div', {'class':'relative'}, [
					Builder.node('div', {'class':'addtocart_overlay_topcap'}),
					oOverlay,
					Builder.node('div', {'class':'addtocart_overlay_bottomcap'})
				])
			]);
			div[i].appendChild(oPopup);
			
			if ($(button[i]).hasClassName('specifyquantity')) {
				var label = document.createElement('label');
				label.appendChild(document.createTextNode('Quantity: '));
				var input = document.createElement('input');
				input.type = 'text';
				input.value  = '1';
				input.size = '2';
				input.link = oOverlay.down('a.ok');
				input.linkHref = href;
				input.partNumber = $A(href.split('=')).last();
				input.onchange = function() {
					var quantity = parseInt(this.value);
					if (!quantity || quantity < 1) quantity = 1;
					else if (quantity > 25) quantity = 25;
					this.value = quantity;
					quantity -= 1;
					var href = this.linkHref;
					for (var i=0; i<quantity; i++) href += ','+this.partNumber;
					this.link.href = href;
				}
				label.appendChild(input);
				button[i].parentNode.insertBefore(label, button[i]);
			}
		}
	},
	
	Popup: function(ev) {
		if(!ev) { ev = window.event; }
		var div = (window.event) ? window.event.srcElement : ev.target;
		if (div.div) div = div.div;
		else while (!div.tagName || div.tagName.toLowerCase() != "div") div = div.parentNode;
		var popup = div.getElementsByClassName('addtocart_popup')[0];

		var popups = $('main').getElementsByClassName('addtocart_popup');
		for (var i=0; i<popups.length; i++) {
			if (popup.id != popups[i].id && popups[i].style.display != 'none') {
				popups[i].style.display = 'none';
				//Effect.Fade(popups[i], {duration:.2});
			}
		}

		popup.style.display = (popup.style.display != 'none') ? 'none' : '' ;
		//Effect.toggle(popup, 'appear', {duration:.2});
		
		return false;
	}
}


/* expandable lists */
var ExpandCollapse = {
	Init: function() {
		var image = new Image();
		image.src = 'http://devimages.apple.com/products/images/bullet_arrow_collapse.gif';

		Element.addClassName($('main'), 'hasjs');

		var nav = $('main').getElementsByClassName('nav');
		for (var i=0; i<nav.length; i++) {
			var show = nav[i].getElementsByClassName('show')[0];
			show.onclick = ExpandCollapse.ShowAll;
			var hide = nav[i].getElementsByClassName('hide')[0];
			hide.onclick = ExpandCollapse.HideAll;
		}

		var list = $('main').getElementsByClassName('expandcollapse');
		for (var i=0; i<list.length; i++) {
			var link = list[i].getElementsByClassName('expand');
			var details = list[i].getElementsByClassName('detail');
			for (var j=0; j<link.length; j++) {
				link[j].onclick = ExpandCollapse.Event;
				if (details[j]) Element.hide(details[j]);
			}
		}
	},
	
	ShowAll: function(ev) {
		if(!ev) { ev = window.event; }
		var clicked = (window.event) ? window.event.srcElement : ev.target;
		
		if (Element.hasClassName(clicked, 'active')) Element.removeClassName(clicked, 'active');
		ExpandCollapse.ResetHide(clicked);

		var list = Element.up(clicked, '.expandcollapse');
		var links = list.getElementsByTagName('a');
		for (var i=0; i<links.length; i++) {
			if (Element.hasClassName(links[i], 'expand')) {
				ExpandCollapse.ShowHide(links[i]);
			}
		}

		return false;
	},
	
	HideAll: function(ev) {
		if(!ev) { ev = window.event; }
		var clicked = (window.event) ? window.event.srcElement : ev.target;
		
		if (Element.hasClassName(clicked, 'active')) Element.removeClassName(clicked, 'active');
		ExpandCollapse.ResetShow(clicked);

		var list = Element.up(clicked, '.expandcollapse');
		var links = list.getElementsByTagName('a');
		for (var i=0; i<links.length; i++) {
			if (Element.hasClassName(links[i], 'collapse')) {
				ExpandCollapse.ShowHide(links[i]);
			}	
		}

		return false;
	},

	Event: function(ev) {
		if(!ev) { ev = window.event; }
		var link = (window.event) ? window.event.srcElement : ev.target;

		ExpandCollapse.Reset(link);
		ExpandCollapse.ShowHide(link);
		
		return false;
	},
	
	ShowHide: function(link) {
		if (Element.hasClassName(link, 'expand')) {
			link.className = 'collapse';
			link.href = '#collapse';
		} else {
			link.className = 'expand';
			link.href = '#expand';
		}

		var detail = Element.up(link, 'li').down('.detail');
		if (Element.hasClassName(link, 'expand')) {
			Element.hide(detail);
		} else {
			Element.show(detail);
		}
	},
	
	Reset: function(link) {
		ExpandCollapse.ResetShow(link);
		ExpandCollapse.ResetHide(link);
	},
	
	ResetShow: function(link) {
		var list = Element.up(link, '.expandcollapse');
		if (list) list = Element.down(list, '.nav');
		if (list) var show = Element.down(list, '.show');
		if (show && !Element.hasClassName(show, 'active')) Element.addClassName(show, 'active');
	},
	
	ResetHide: function(link) {
		var list = Element.up(link, '.expandcollapse');
		if (list) list = Element.down(list, '.nav');
		if (list) var hide = Element.down(list, '.hide');
		if (hide && !Element.hasClassName(hide, 'active')) Element.addClassName(hide, 'active');
	}
}


/* initialze these on the pages */
Event.observe(window, 'load', function() {
	AddToCart.Init();
	ExpandCollapse.Init();
});