/*========================================================
 @site		Nationa Galleries of Scotland
 @company	Keepthinking LTD
 @address	http://keepthinking.it
 @author	Oskar Krawczyk (o.krawczyk@keepthinking.it)
 @rev		14/12/2006
 ========================================================*/

window.addEvent('load', function() {
	var items = $$('.iiItem');
	var combined = 0;
	
	items.each(function(el) {
		var max_height = 0;
		var size = (el.getElement('a img') ? el.getElement('a img').getSize().x : el.getElement('a span').getSize().x);
		el.setStyle('width', size);
		el.getElements('span').setStyle('width', size-10);
		combined += size;
	});


	// Style the layout for the Collection records
	var parents = $$('.inlineImages');
	parents.each(function(parent_item){
	    var children = parent_item.getElements('li.iiItem');
	    var max_height = 0;

	    children.each(function(child_item){
	        var child_height = child_item.getSize().y;
	        max_height = Math.max(max_height, child_height);
	    });
	    children.setStyle('height', max_height-10);
	    var parent_height = parent_item.getSize().y;
		var grandparent_item = $(parent_item).getParent('.inlineImagesCont');

	    grandparent_item.setStyle('height', parseInt(parent_height));
		parent_item.setStyle('left', (grandparent_item.getSize().x-parent_item.getSize().x)/2);
		
		grandparent_item.setStyle('visibility', 'visible');
	});


/*
	// Style the layout for the Collection records
	var inlineImagesC = $('c1');
	if(inlineImagesC) {
		var inlineImages = inlineImagesC.getElements('.inlineImages');
		inlineImages.each(function(el) {
				var size = el.getSize().x;
				el.setStyle('margin-left', (((765-size)/(Browser.Engine.trident4 ? 4 : 2)).toInt()));
		});
	} else {
	   $$('.inlineImagesCont').each(function(el){
	      var size = el.getElement('.inlineImages').getSize().x;
	      el.setStyle('margin-left', (((765-size)/(Browser.Engine.trident4 ? 2 : 2)).toInt()));
	   });
	}
*/
	
	var tabNav = $$('.tabNavItem');
	var tabCont = $$('.tabContItem');

	if(tabCont[1]) tabCont[1].setStyle('display', 'none');

	tabNav.each(function(el, i) {
		var cont = el.get('class').split(' ')[1];

		el.addEvent('click', function(e) {
			e.stop();
			tabNav.set('class', 'tabNavItem ' + cont);
			el.set('class', 'tabNavItem ' + cont + ' active');
			tabCont.setStyle('display', 'none');
			$(cont).setStyle('display', 'block');
		});
	});
});

sendForm = function(formId) {   
	new Request.HTML({
		url: absoluteUrl+'form.php',
		postBody: $('qa-form-'+formId), 
		onActive: $('status-container-'+formId).innerHTML = '<p id="status" class="loading"><img src="'+absoluteUrl+'static/img/loader.gif" alt="Loader." /> Sending message ...</p>',
		update: 'status-container-'+formId,
		onFailure: (function(){
			$('status-container-'+formId).innerHTML = '<p id="status" class="oops">Sorry, problem occured while sending your e-mail. Please try again.</p>'
		})
	}).send();
}

toggleGlossary = function(suffix) {
	var glossaryClosed = $('gloss_c_'+suffix);
	var glossaryOpened = $('gloss_o_'+suffix);
	var glossaryToggler = $('doToggle_'+suffix);
	
	if(glossaryToggler.className == 'doHide') {
		glossaryToggler.innerHTML = 'Show';
		glossaryToggler.className = 'doShow';
		glossaryOpened.className = 'hide';
		glossaryClosed.className = 'show';
	} else {
		glossaryToggler.className = 'doHide';
		glossaryToggler.innerHTML = 'Hide';
		glossaryOpened.className = 'show';
		glossaryClosed.className = 'hide';
	}
}

toggleItem = function(from, to) {
	var from = $(from);
	var to = $(to);
	 
	if(from.className == 'doHide') {
		from.className = 'doShow';
		to.className = 'hide';
	} else {
		from.className = 'doHide';
		to.className = 'show';
	}
}

toggleGlossaryColl = function(type) {
	var glossaryEl = $('glossColl-'+type);
	var glossaryElBlurb = $('glossCollBlurb-'+type);
	var glossaryToggler = $('doToggle-'+type);
	
	if(glossaryToggler.className == 'doHide') {
		glossaryToggler.innerHTML = 'Open';
		glossaryToggler.className = 'doShow';
		glossaryEl.className = 'hide';
		glossaryElBlurb.className = 'show';
	} else {
		glossaryToggler.className = 'doHide';
		glossaryToggler.innerHTML = 'Close';
		glossaryEl.className = 'show';
		glossaryElBlurb.className = 'hide';
	}
}

toggleQa = function(targetId){
  if (document.getElementById){
		for(var i = 0; i < qaItems; i++) {
			var target = document.getElementById('qa-toggled-'+i);
			target.style.display = "none";
		}
		var target2 = document.getElementById(targetId);
		target2.style.display = "block";
  	}
}

hideEmail = function(domain,email,linkText,linkTitle){
   document.write("<a href=\"mailto");
   document.write(":" + email + "@");
   document.write(domain + "\" title=\""+linkTitle+"\">"+linkText+"<\/a>");
}

loadItem = function(itemValue)
{
	//	assuming that itemValue (most likely itemId) should be a third ":" separated argument in url!
	var url_params = window.location.href.split(":");

	//	change second value after :, e.g. value followed by page and "/"
	url_parts = url_params[2].split("/");
	url_parts[1] = itemValue;
	url_params[2] = url_parts.join("/");

	//	construct url back and forward to url
	window.location.href = url_params.join(":");
}

/* CSS Toggle Visability script */
toggleListItem = function(targetId){
  if (document.getElementById){

	  	for(i=0;i<facets.length;i++){
			targetRemove = 'subMenu-'+facets[i];
			var target = document.getElementById(targetRemove);
			target.className = "hidden";
		}
		
		mySubMenu = document.getElementById(targetId);
		
		if (mySubMenu.className = "hidden"){
			mySubMenu.className = "show";
		}
  	}
}

toggleWork = function(targetId){
  if (document.getElementById){

		var target_tab_1 = document.getElementById('work-text-tab');
		var target_tab_2 = document.getElementById('work-bio-tab');
		// var target_tab_3 = document.getElementById('work-glossary-tab');

		if(target_tab_1) {
			target_tab_1.className = "notActive";
		}
		if(target_tab_2) {
			target_tab_2.className = "notActive";
		}
		
		if(targetId+'-tab' == 'work-text-tab') {
			target_tab_1.className = "isActive";
		}
		if(targetId+'-tab' == 'work-bio-tab') {
			target_tab_2.className = "isActive";
		}

		var target1 = document.getElementById('work-text');
		if(target1) {
			target1.className = "hidden";
		}
		var target2 = document.getElementById('work-bio');
		if(target2) {
			target2.className = "hidden";
		}

		mySubMenu = document.getElementById(targetId);
		
		if (mySubMenu.className = "hidden"){
			mySubMenu.className = "show";
		}
  	}
}

switchTourContent = function(targetId){
  if (document.getElementById) {

		var target_tab_1 = document.getElementById('tour-text-tab');
		var target_tab_2 = document.getElementById('tour-more-tab');
		var target_tab_3 = document.getElementById('tour-bio-tab');

		if(target_tab_1) {
			target_tab_1.className = "notActive";
		}
		if(target_tab_2) {
			target_tab_2.className = "notActive";
		}
		if(target_tab_3) {
			target_tab_3.className = "notActive";
		}
		
		if(targetId+'-tab' == 'tour-text-tab') {
			target_tab_1.className = "isActive";
		}
		if(targetId+'-tab' == 'tour-more-tab') {
			target_tab_2.className = "isActive";
		}
		if(targetId+'-tab' == 'tour-bio-tab') {
			target_tab_3.className = "isActive";
		}

		var target1 = document.getElementById('tour-text');
		if(target1) {
			target1.className = "hidden";
		}
		var target2 = document.getElementById('tour-more');
		if(target2) {
			target2.className = "hidden";
		}
		var target3 = document.getElementById('tour-bio');
		if(target3) {
			target3.className = "hidden";
		}
		
		mySubMenu = document.getElementById(targetId);
		
		if (mySubMenu.className = "hidden"){
			mySubMenu.className = "show";
		}
  	}
}

switchTourMode = function(targetId){
  if (document.getElementById){


		var target_tab_1 = document.getElementById('tour-tour-tab');
		var target_tab_2 = document.getElementById('tour-qa-tab');

		if(target_tab_1) {
			target_tab_1.className = "notActive";
		}
		if(target_tab_2) {
			target_tab_2.className = "notActive";
		}

		if(targetId+'-tab' == 'tour-tour-tab') {
			target_tab_1.className = "isActive";
		}
		if(targetId+'-tab' == 'tour-qa-tab') {
			target_tab_2.className = "isActive";
		}

		var target1 = document.getElementById('tour-tour');
		if(target1) {
			target1.className = "hidden";
		}
		var target2 = document.getElementById('tour-qa');
		if(target2) {
			target2.className = "hidden";
		}

		mySubMenu = document.getElementById(targetId);

		if (mySubMenu.className = "hidden"){
			mySubMenu.className = "show";
		}

  	}
}

number_format = function( number, decimals, dec_point, thousands_sep ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     bugfix by: Michael White (http://getsprink.com)
    // +     bugfix by: Benjamin Lupton
    // +     bugfix by: Allan Jensen (http://www.winternet.no)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +     bugfix by: Howard Yeend
    // *     example 1: number_format(1234.5678, 2, '.', '');
    // *     returns 1: 1234.57     
 
    var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
    var d = dec_point == undefined ? "." : dec_point;
    var t = thousands_sep == undefined ? "," : thousands_sep, s = n < 0 ? "-" : "";
    var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
    
    return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}

// legacy code
var total_sum = 0;

updatePrice = function(price, id, el) {
	total_sum = 0;
	var price 	= $('price_'+id).value;
	var quantity 	= el.value;
	var total = number_format(price * quantity,2);
	$('total_display_'+id).set('html', price.toInt() ? '&pound;'+number_format(total, 2) : 'Free');
	$('total_'+id).value = total;
	
	// get the totals
	$$('.total_price').each(function(el){
		if(el.value){
			total_sum += el.value.toFloat();
		}
	});
	
	// enable free tickets
	var status = (total_sum > 0 ? false : true);
	$$('.prselect').each(function(el){
		select_id = el.get('id');
		item_id = select_id.split('_').pop();
		if(!($('price_'+item_id).value.toInt())){
			if(status){
				el.value = 0;
			}
			el.disabled = status;
		}
	});
	$('total_sum').value = '&pound;'+number_format(total_sum, 2);
	$('total_sum_display').set('html', '&pound;'+number_format(total_sum, 2));
	
	$('tandc').disabled = status;
}

addGiftaid = function(giftaid) {
	var price,quantity,total,select_id,item_id;
	var total_sum = 0;
	$$('.prselect').each(function(el){
		select_id = el.get('id');
		item_id = select_id.split('_').pop();
		price = $('price_'+item_id).value;
		price = number_format((giftaid.checked? price * 1.1 : price / 1.1),2);
		quantity = $('qty_'+item_id).value;
		total = price * quantity;
		total_sum += total;
		
		$('price_'+item_id).value = price;
		$('price_display_'+item_id).set('html', price.toInt() ? '&pound;'+number_format(price, 2) : 'Free');
		$('total_'+item_id).value = total;
		$('total_display_'+item_id).set('html', price.toInt() ? '&pound;'+number_format(total, 2) : 'Free');

		$('total_sum').value = '&pound;'+number_format(total_sum, 2);
		$('total_sum_display').set('html', '&pound;'+number_format(total_sum, 2));
		
		$('giftaid_display_'+item_id).set('html', giftaid.checked ? " with GiftAid" : "");
	});
}

function addToSelect(select, t, v) {
	var oOption = document.createElement('option');
	if(t != undefined) select.options.add(oOption);
	oOption.text = t;
	oOption.value = v;
}

function activate(type, finishEl, sizeEl) {
	var finishEl = $(finishEl);
	var sizeEl = $(sizeEl);
	var index = type.value.toInt();
	
	if(index === 0 || finish[index].length === 0) {
		$(finishEl).disabled 	= true;
		$(sizeEl).disabled 		= true;
	} else {
		$(finishEl).disabled 	= false;
		$(sizeEl).disabled 		= false;
	}
	
	finishEl.innerHTML='';
	sizeEl.innerHTML='';
	
	finish[index].each(function(el, i) {
		addToSelect(finishEl, el, i);
	});
	
	size[index].each(function(el, i) {
		addToSelect(sizeEl, el, i);
	});
}

function list_enable_submit_(submit, boxName) {
	var work = $('pl-work').get('value').length.toInt();
	var type = $('pl-type').get('value').toInt();
	var name = $('pl-name').get('value').length.toInt();
	var tel = $('pl-tel').get('value').length.toInt();
	var email = $('pl-email').get('value').length.toInt();

	var validate = [work, type, name, tel, email].every(function(item, index){ 
	    return item >= 1; 
	});
	
	submit.disabled = !boxName.checked;

	if(validate == true) {
		if(!boxName.checked == true) {
			submit.set('class', 'submit inactive');
			submit.disabled = true;
		} else {
			submit.set('class', 'submit active');
			submit.disabled = false;
		}
	} else {
		submit.set('class', 'submit inactive');
		submit.disabled = true;
	}
}
