
function loadCSS(url_) {
  var _links = document.getElementsByTagName("link");
  if (_links.length > 0 && _links["href"] == url_) return;
  var _elstyle = document.createElement("link");
  _elstyle.setAttribute("rel", "stylesheet");
  _elstyle.setAttribute("type", "text/css");
  _elstyle.setAttribute("media", "all");
  _elstyle.setAttribute("href", url_);
  var _head = document.getElementsByTagName("head")[0];
  _head.appendChild(_elstyle);
}
		   

var ImageViewer = new Class({
	foldermap: function(path) {
		return path.replace('/small/','/large/');
	},
	initialize: function( imagelist , templateURL, foldermap) {
			if (foldermap) this.foldermap=foldermap;
			this.templateURL = templateURL;
			this.imagelist = imagelist;
			this.numImage=0;
			this.imagelist.getElements('img').each(function(item){
				item.addEvent('click', function(event){ this.clickImage(event, item); }.bind(this));
				this.numImage++;
			}.bind(this));
	},
	clickImage: function(event, img) {
		var tg=img.getProperty('target');
		if (tg) {
			if (eval(tg)) return;
		}
		this.current=img;
		if (!this.container) {
			this.container = new Element('div').addClass("ImageViewer").injectTop(document.body);
			this.container.setStyle('visibility','hidden');
			this.container.makeDraggable();	
			//this.container.makeResizable();
		}
		var myAjax = new Ajax(this.templateURL, {method: 'get', update: this.container, evalScripts:true, onComplete: function() {
					this.container.getElementsBySelector('img,a').each(function(item){
					switch (item.id) {
						case 'placeholder': this.placeholder = item; return;
						break;
						case 'left': item.addEvent('click', function(event){ this.clickLeft(event, item); }.bind(this));
												this.left=item;
						break;
						case 'right': item.addEvent('click', function(event){ this.clickRight(event, item); }.bind(this));
												this.right=item;
						break;
						case 'close': item.addEvent('click', function(event){ this.clickClose(event, item); }.bind(this));												
						break;
					}
					item.addClass('active');
					with (this.container) 
					if (getStyle('visibility')!='visible') {
						var s=document.body.getSize();
						setStyle('left',(window.getScrollWidth()-850)/2);
						setStyle('top',200);
						setStyle('visibility','visible');
					}
				}.bind(this)); 
				this.updateButton();
				
			}.bind(this)}).request();
	},
	clickClose: function(event) {
		this.close();
	},
	imgIndex: function(img) {
		var count=0;
		this.imagelist.getElements('img').each(function(item){
			if (count>=0) count++;
			if (item==img) count=-count; 
		}.bind(this));	
		return -count;
	},
	updateButton: function() {
		var i=this.imgIndex(this.current);
		if (i<=1) {
			this.left.removeClass('active');
			this.left.addClass('inactive');
		} else {
			this.left.removeClass('inactive');
			this.left.addClass('active');
		}
		if (i>=this.numImage) {
			this.right.removeClass('active');
			this.right.addClass('inactive');
		} else {
			this.right.removeClass('inactive');
			this.right.addClass('active');
		}
		with (this.placeholder) 
			try {
				filters.blendTrans.Apply();
			  setProperty('src',this.foldermap(this.current.getProperty('src')));
				filters.blendTrans.Play();
			} catch (er) {
				setProperty('src',this.foldermap(this.current.getProperty('src')));			
			}
		this.container.getElementById("title").innerHTML=this.current.getProperty('title');
		
	},
	clickLeft: function(event, button) {
			var last = null;
			this.imagelist.getElements('img').each(function(item){
				if (item==this.current) {
					if (last) this.current = last;
				}				
				last=item;
			}.bind(this));
			this.updateButton();
	},
	clickRight: function(event, button) {
			var next = 0;
			this.imagelist.getElements('img').each(function(item){
				if (next==1) { this.current = item; next=2; }
				else if (item==this.current) {
					 next=1;
				}				
			}.bind(this));
			this.updateButton();
	},
	close: function() {
		if (this.container) {
			this.container.remove();
			this.container=null;
		}
		//this.imagelist.getElements('img').each(function(item){
		//		item.removeEvent('click');
		//	}.bind(this));
	}
});

var TabPages = new Class({
	initialize: function(tab, content, inittab, tabsource) {
		this.tabsource = tabsource;
		this.tab = $(tab), this.current = this.tab.getElement('li');
		this.tab.getElements('li').each(function(item){
			item.addEvent('click', function(event){ this.clickItem(event, item); }.bind(this));
			if (item.id==inittab) { item.addClass('activetab'); }
			if (item.hasClass('activetab')) {
				this.current=item;
			}
		}.bind(this));
		this.content = content;
		//this.refresh();
	},
	refresh: function(tabid) {
		tabid = "t-photos";
		this.clickItem(null, tabid?this.getTab(tabid):this.current);
//		alert("test:" + tabid);
	},
	getTab: function(tabid) {
		var mytab=null;
		this.tab.getElements('li').each(function(item){
			if (item.id==tabid) mytab=item; 
		});
		return mytab;
	},
	clickItem: function(event, item) {
		if (item.getStyle('cursor')=='text') return false;
		try { unloadTab(); } catch (er) {}
		if(this.current) {
			this.current.removeClass('activetab');
		}
		try { screen.updateInterval = 200; setTimeout( function() { screen.updateInterval = 0; }, 200); } catch (er) {}
		
		var URL=this.tabsource(item);
		var myAjax = new Ajax(URL, {method: 'get', update: this.content, evalScripts:true, onComplete: function() {
				try { screen.updateInterval = 0; } catch (er) {}
			}}).request();
		
		item.addClass('activetab');	
		this.current = item;
	}
});

TabPages.implement(new Options);


var ScrollViewer = new Class({
	initialize: function( wrapperid, linkid, topdivid, transit ) {
			if (topdivid) {
				var crd=$(wrapperid).getCoordinates();
				$(topdivid).setStyles({ left: crd.left, top: crd.top, width: crd.width, height: crd.height } );
			}		
			var scroll = new Fx.Scroll(wrapperid,transit);
			this.scroll=scroll;
			var rx=0;
			$(linkid).getElements("a").each(function(item) {
				
				var conid='content-'+item.id;
				$(conid).setStyles({ left: rx });
				var c=$(conid).getCoordinates();
				rx+=c.width;					
				if (item.hasClass('active')) {
					this.activelink=item;
					this.scrollto(conid);
				}
				if (!item.onclick)
				item.addEvent('click', function(event) {
					//event = new Event(event).stop();
					if (this.activelink)
					this.activelink.removeClass('active');
					this.activelink=item;
					item.addClass('active');					
					this.scrollto(conid);
				}.bind(this,conid));
			}.bind(this));
	},
	refresh: function() {
		this.scrollto(this.lastid);
	},
	scrollto: function(conid) {
		this.lastid=conid;
		this.scroll.toElement(conid);	
	},
	gotolink: function(delta,notme) { 
		var nextitem=this.activelink;
		var lastitem=nextitem;
		do {
			nextitem=delta>0?nextitem.getNext():nextitem.getPrevious();
			if ((!nextitem)||(nextitem==notme)) {
				nextitem=lastitem;
				return false;				
			}
			if (nextitem.tagName) { lastitem=nextitem; }
		} while (!lastitem.tagName);	
		if (this.activelink) this.activelink.removeClass('active');
		this.activelink=lastitem;
		lastitem.addClass('active');					
		this.scrollto('content-'+lastitem.id);
	}
	
});	
	

// Primary Global Navigation - Class
var SlideList = new Class({
	initialize: function(menu, options) {
		this.setOptions(options);
		var defaultitem=document.body.id;
		this.menu = $(menu);	
		
		this.menu.getElements('li').each(function(item){
		 	if ((!this.current)||(item.firstChild.href.indexOf(defaultitem)>=0))	this.current = item;
			item.addEvent('mouseover', function(){ clearTimeout(this.delayHideId); this.moveBg(item); }.bind(this));
			item.addEvent('mouseout', function(){ this.moveBg(this.current); this.hideContent(); 	}.bind(this));			 
		}.bind(this));
		this.back = new Element('div').addClass('SlideContent').injectInside(document.body);
		this.back.setProperty("id",this.menu.getProperty("id"));
		this.back.addEvent('mouseover', function() { clearTimeout(this.delayHideId); }.bind(this));
		this.back.addEvent('mouseout', function() { this.hideContent(); }.bind(this));
		this.back.fx = this.back.effects(this.options);
		var p=this.current.getPosition();
		this.back.setStyles( 'left: '+p.x+'px ; top: '+(p.y+this.current.getSize().size.y)+'px' );
		
		var myAjax = new Ajax(this.menu.getProperty("src"), {method: 'get', update: this.back, evalScripts:true, onComplete: function() {	
					this.back.getElements("a").each(function(item) {
		  			item.addEvent('click', function() {
		  			this.hideContent(100);
		  		}.bind(this));
		  	}.bind(this));			
			}.bind(this)}).request();		
		
	},
	
	hideContent: function(delay) {
		clearTimeout(this.delayHideId); 
		this.delayHideId=setTimeout(function() {
			this.back.style.visibility='hidden';
			if (this.current)	this.current.removeClass("active"); 
			this.current=null; 
		}.bind(this),delay?delay:150);	 
	},
	
	setCurrent: function(el, effect){
		if(this.current) this.current.removeClass("active"); 
		this.current = el;
		el.addClass("active");
	},


	moveBg: function(to) {
		if ((to!=this.current)||(this.current&&!this.current.hasClass('active'))) {
		  var extcontent=this.back.getElement('#'+to.id+'div');
		  
		  if (extcontent) {		  
		  	this.back.style.visibility='visible';
		  	this.back.getElements('div[class=mNav]').each(function(item){
		  		item.setStyle('display',item==extcontent?'':'none');
		  	}.bind(extcontent));
		  	
				var pos=to.getPosition();
				var old=this.back.getPosition();
		  	this.setCurrent(to, true);
		  	this.back.fx.custom({
						left: [old.x, pos.x],
						top: [old.y, pos.y+to.getSize().size.y]
				});
			} else {
				this.hideContent();
			}
			
		}			
	}
});


SlideList.implement(new Options);


	
// Primary Global Navigation - Implementation
window.addEvent('domready', function() {
	// QuickTips  - Implementation
	var QT = new Tips($$('.QT'), {
		maxTitleChars: 150,
		className: 'q'			
	});
		
	if($('galleryHeader'))
		__tabNav = new TabPages($E('ul', 'gallery'), $('galleryContent'), function(tab) { 
				return "/index.jsp?url="+tab.id+"/"+val;
			});

	if($('modelNav'))
		__modelNav = new SlideList($E('ul#modelNav'), {transition: Fx.Transitions.Quad.easeOut, duration: window.ie6?0:200, wait:false, onClick: function(ev, item) { /*ev.stop();*/ }});

	if ($('accordion'))	setupAccordion('accordion','h3.atStart', 'div.atStart');
});




function setupAccordion(aId, hPath, divPath) {
	var accnode=$(aId);
	if (accnode) {
		var showindex=location.href.split("#");
		var i=0; try { i=parseInt(showindex[1]); } catch (er) { i=-1; } 
		
		//alert(showindex[1]?showindex[1]:'none');
		var accordion = new Accordion(hPath, divPath, {
			opacity: false,
			show: i<0?'none':i,
			display: i, 
			alwaysHide: true,
			onActive: function(toggler, element){
				toggler.addClass('active');
			},
			onBackground: function(toggler, element){
				toggler.removeClass('active');
			}
		}, accnode);
	}
}



var numSelectReplacement=0;


function selectReplacement(obj) {
	var opts = obj.options;
	if ((!opts)||(opts.length<=0)) return;
	numSelectReplacement++;
	obj.addClass('replaced');
  var ul = document.createElement('ul');
  ul.className = 'selectReplacement';
  
  for (var i=0; i<opts.length; i++) {
    var selectedOpt;
    if (opts[i].selected) {
      selectedOpt = i;
      break;
    } else {
      selectedOpt = 0;
    }
  }
  for (var i=0; i<opts.length; i++) {
    var li = document.createElement('li');
    var txt = document.createTextNode(opts[i].text);
    li.appendChild(txt);
    li.selIndex = opts[i].index;
    li.selectID = obj.id;
    li.onclick = function() {
      selectMe(this);
    }
    if (i == selectedOpt) {
      li.className = 'selected';
      li.onclick = function() {
        this.parentNode.className += ' selectOpen';
        this.onclick = function() {
          selectMe(this);
        }
      }
    }
    if (window.attachEvent) {
      li.onmouseover = function() {
        this.className += ' hover';
      }
      li.onmouseout = function() {
        this.className = 
          this.className.replace(new RegExp(" hover\\b"), '');
      }
    }
    ul.appendChild(li);
  }
  obj.parentNode.insertBefore(ul,obj);
}
function selectMeByIndex(obj,index) {
  var lis = obj.parentNode.getElementsByTagName('li');
	selectMe(lis[index]);
}
function selectMe(obj) 
{
	var lis = obj.parentNode.getElementsByTagName('li');
	for (var i=0; i<lis.length; i++) {
		if (lis[i] != obj) {
		  lis[i].className='';
		  lis[i].onclick = function() {
			selectMe(this);
		  }
		} 
		else {
		  setVal(obj.selectID, obj.selIndex);
		  //prompt("test",obj.parentNode.parentNode.innerHTML);
		  obj.className='selected';
		  obj.parentNode.className = 
		  obj.parentNode.className.replace(new RegExp(" selectOpen\\b"), '');
		  obj.onclick = function() {
		  obj.parentNode.className += ' selectOpen';
		  this.onclick = function() {
			  selectMe(this);
		  }
	  }
	}	


	//  =========================================	//
	//  | SIZES OF BUTTONS  					|	//
	//  =========================================	//
	//  | PHOTOS 						= 74px 	|	//
	//  | 360 							= 84px 	|	//
	//  | COLORS 						= 123px |	//
	//  | ACCESSORIES 					= 106px	|	//
	//  | DOWNLAODS 					= 103px	|	//
	//  | VIDEOS 						= 71px 	|	//
	//  | spaces between the buttons is = 10px	|	//
	//  =========================================	//


	if(document.getElementById("t-photos"))
	{
		if(document.getElementById("t-photos")){document.getElementById("t-photos").style.visibility = "hidden";document.getElementById("t-photos").style.position = "absolute";}
		if(document.getElementById("t-360")){document.getElementById("t-360").style.visibility = "hidden";document.getElementById("t-360").style.position = "absolute";}
		if(document.getElementById("t-colours")){document.getElementById("t-colours").style.visibility = "hidden";document.getElementById("t-colours").style.position = "absolute";}
		if(document.getElementById("t-accessories")){document.getElementById("t-accessories").style.visibility = "hidden";document.getElementById("t-accessories").style.position = "absolute";}
		if(document.getElementById("t-downloads")){document.getElementById("t-downloads").style.visibility = "hidden";document.getElementById("t-downloads").style.position = "absolute";}
		if(document.getElementById("t-videos")){document.getElementById("t-videos").style.visibility = "hidden";document.getElementById("t-videos").style.position = "absolute";}
		
		if(document.getElementById("model")){var chosenOne = document.getElementById("model").options[obj.selIndex].value;}
		//var chosenOne = "";
		
		if((chosenOne == "gs300")||(chosenOne == "gs450h"))
		{
			document.getElementById("t-photos").parentNode.style.width = "74px"; // WIDTH
	
			document.getElementById("t-photos").style.visibility = "visible";
			//document.getElementById("t-colours").style.visibility = "visible";
			//document.getElementById("t-accessories").style.visibility = "visible";
			//document.getElementById("t-360").style.visibility = "visible";
	
			document.getElementById("t-photos").style.left = "0px";		
			//document.getElementById("t-colours").style.left = "84px";
			//document.getElementById("t-accessories").style.left = "217px";
			//document.getElementById("t-360").style.left = "290px";
		}
		else if((chosenOne == "gs430")||(chosenOne == "is250")||(chosenOne == "rx400h")||(chosenOne == "sc430"))
		{
			document.getElementById("t-photos").parentNode.style.width = "417px"; // WIDTH
		
			document.getElementById("t-photos").style.visibility = "visible";
			document.getElementById("t-360").style.visibility = "visible";
			document.getElementById("t-colours").style.visibility = "visible";
			document.getElementById("t-accessories").style.visibility = "visible";
		
			document.getElementById("t-photos").style.left = "0px";
			document.getElementById("t-360").style.left = "84px";
			document.getElementById("t-colours").style.left = "178px";
			document.getElementById("t-accessories").style.left = "311px";
		}
		else if(chosenOne == "rx350")
		{
			document.getElementById("t-photos").parentNode.style.width = "530px"; // WIDTH
			
			document.getElementById("t-photos").style.visibility = "visible";
			document.getElementById("t-360").style.visibility = "visible";
			document.getElementById("t-colours").style.visibility = "visible";
			document.getElementById("t-accessories").style.visibility = "visible";
			document.getElementById("t-downloads").style.visibility = "visible";
		
			document.getElementById("t-photos").style.left = "0px";
			document.getElementById("t-360").style.left = "84px";
			document.getElementById("t-colours").style.left = "178px";
			document.getElementById("t-accessories").style.left = "311px";
			document.getElementById("t-downloads").style.left = "427px";
		}
		else if(chosenOne == "lx570")
		{
			document.getElementById("t-photos").parentNode.style.width = "74px"; // WIDTH
			document.getElementById("t-photos").style.visibility = "visible";
			document.getElementById("t-photos").style.left = "0px";
		}
		else if(chosenOne == "lx470")
		{
			document.getElementById("t-photos").parentNode.style.width = "495px";
			document.getElementById("t-photos").style.visibility = "visible";
			document.getElementById("t-photos").style.left = "0px";

				document.getElementById("t-360").style.visibility = "visible";
				document.getElementById("t-360").style.left = "84px";
				document.getElementById("t-colours").style.visibility = "visible";
				document.getElementById("t-colours").style.left = "178px";
/*			if(document.getElementById("t-accessories"))
			{
				document.getElementById("t-accessories").style.visibility = "visible";
				document.getElementById("t-accessories").style.left = "311px";
			}*/
				document.getElementById("t-downloads").style.visibility = "visible";
				document.getElementById("t-downloads").style.left = "311px";
				document.getElementById("t-videos").style.visibility = "visible";
				document.getElementById("t-videos").style.left = "424px";
		}
		else if (chosenOne == "gs460")
		{	
			document.getElementById("t-photos").parentNode.style.width = "190px"; // WIDTH
			document.getElementById("t-photos").style.visibility = "visible";
			document.getElementById("t-accessories").style.visibility = "visible";
			document.getElementById("t-photos").style.left = "0px";
			document.getElementById("t-accessories").style.left = "84px";
		
	    }
		else if(chosenOne == "isf")
		{
			document.getElementById("t-photos").parentNode.style.width = "155px"; // WIDTH
	
			document.getElementById("t-photos").style.visibility = "visible";
			document.getElementById("t-videos").style.visibility = "visible";
			
			document.getElementById("t-photos").style.left = "0px";
			document.getElementById("t-videos").style.left = "84px";
		}
		else
		{
			document.getElementById("t-photos").parentNode.style.width = "611px";
			document.getElementById("t-photos").style.visibility = "visible";
			document.getElementById("t-photos").style.left = "0px";
			if(document.getElementById("t-360"))
			{
				document.getElementById("t-360").style.visibility = "visible";
				document.getElementById("t-360").style.left = "84px";
			}
			if(document.getElementById("t-colours"))
			{
				document.getElementById("t-colours").style.visibility = "visible";
				document.getElementById("t-colours").style.left = "178px";
			}
				if(document.getElementById("t-accessories"))
			{
				document.getElementById("t-accessories").style.visibility = "visible";
				document.getElementById("t-accessories").style.left = "311px";
			}
			if(document.getElementById("t-downloads"))
			{
				document.getElementById("t-downloads").style.visibility = "visible";
				document.getElementById("t-downloads").style.left = "427px";
			}
			if(document.getElementById("t-videos"))
			{
				document.getElementById("t-videos").style.visibility = "visible";
				document.getElementById("t-videos").style.left = "540px";
			}
		}
		}
	}
}
function setVal(objID, selIndex) {
  var obj = document.getElementById(objID);
  obj.selectedIndex = selIndex;
  obj.fireEvent('change');
}

function replaceAllSelect(fromNode, again) {
	if (!again) numSelectReplacement=0;
     fromNode.getElements('select[class=replaced]').each(function(item) { selectReplacement(item); });
    
     if (numSelectReplacement==0) {
    		setTimeout( function() { replaceAllSelect(fromNode,true); }.bind(fromNode), 300);
    	}
}

