/**
* Design Cafe general JavaScript functions
**/

var model;
var year;
var url;
var thumbnails = null;

function init(){
	if(document.getElementById("selModel")){
		document.getElementById("selModel").onchange = function(e){
			model = this.options[this.selectedIndex].value;
			url = document.URL.split("?")[0] + "?model="+escape(model);
			document.location = url;
		}
	}
	if(document.getElementById("selYear")){
		document.getElementById("selYear").onchange = function(e){
			model = document.getElementById("selModel").options[document.getElementById("selModel").selectedIndex].value;
			year = this.options[this.selectedIndex].value;
			url = document.URL.split("?")[0] + "?model="+escape(model)+"&year="+year;
			document.location = url;
		}
	}
	// Set send to friend link
	if(document.getElementById("sendtofriend")){
		document.getElementById("sendtofriend").onclick = function(e){
			window.open('/common/send_to_a_friend_form.jsp?linkurl=' + document.URL + '&linktext=' + document.title + '','','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=420, height=500'); 
			return false;		
		}
	}
	//if(document.getElementById("article-layout")){
	//	openPage(1);
	//}
	
	//Get all thumbnails on page
	thumbnails = getElementsByTagNameAndClassName("td", "thumbnail");
}

function enableMenu(className){
	if (document.getElementById("css_menu")) {
		document.getElementById("css_menu").style.display='block';
	}
	document.getElementById(className).parentNode.className = "selected";
}

function setThumbnailImages(ID){
	if(document.getElementById(ID)){
		for(var i=0; i < thumbnails.length; i++){
			addListener(thumbnails[i], "click", function(e){
				setClass(thumbnails, "thumbnail");
				addClass(this, "active");
				showImage(this.href, this.id.split("_")[1]);
				this.blur();
				return false;
			});
		}
	}
    return false;
}

function nextImage(){
	var index = imageIndex+1;
	if(index < galleryImageList.length){
		var url = galleryImageList[index][1];
		showImage(url, "galleryImage", index);
		setClass(thumbnails, "thumbnail");
		addClass(thumbnails[index], "active");
	}
}

function previousImage(){
	var index = imageIndex-1;
	if(index >= 0){
		var url = galleryImageList[index][1];
		showImage(url, "galleryImage", index);
		setClass(thumbnails, "thumbnail");
		addClass(thumbnails[index], "active");
	}
}

// Sets the href attribute of the anchor with ID 'download' to the full size image.
// The URL is retreived from an array called 'galleryImageList' which is populated on the page 
function showImage(url, index){
	// Set pagewide image index
	imageIndex = index*1;
	var anchor = null;
	if(document.getElementById("download")){
		anchor = document.getElementById("download");
		anchor.setAttribute("href", galleryImageList[index][0]);
	}
}

var again = null;
            
function scrollside(side, src, amount) {    
    if (amount==null){ 
        amount=10;
    }
    if (side=="left") {
        document.getElementById(src).scrollLeft-=amount;
    }else {
        document.getElementById(src).scrollLeft+=amount;
    }
    if (again==null) {
        again = setInterval("scrollside('"+side+"','"+src+"',"+amount+")",50);
    }
    return false;
}

function setClass(elements, className){
	for(var i = 0; i < elements.length; i++){
		elements[i].className = className;
	}
}
//Adds the class to the element
function addClass(element, className){
	element.className += (" " + className);
}

function getElementsByTagNameAndClassName(tagName, className){
	var matches = new Array();
	var elements = document.getElementsByTagName(tagName);
	var j = 0
	for(var i = 0; i < elements.length; i++){
		if(elements[i].className.indexOf(className) != -1){
			matches[j] = elements[i];
			j++
		}
	}
	return matches;
}

/** 
 * Pageswitcher functions used on full article detail page
 */

var previousSelected = 1; 
var pageId = 1;

function openPage(id) { 
	if (document.getElementById("article-content" + id)) { 
	    if(document.getElementById("article-content" + id).getAttribute("style")){  // BACKWARDS COMPATIBILITY
	    	document.getElementById("article-content" + id).style.display = "block";
	    }
	    else{
		    if(document.getElementById("article-content" + id).className.indexOf('noprint')!=-1){
			    document.getElementById("article-content" + id).className="noprint";
		    }
		    else{
			    document.getElementById("article-content" + id).className="";
		    }
		}
	    
	    if (document.getElementById("article-downloads" + id)) { 
	    	document.getElementById("article-downloads" + id).style.display="block";
	    	if(document.getElementById("label_downloads")) document.getElementById("label_downloads").style.display="block";
	    }
	    else{
	    	if(document.getElementById("label_downloads")) document.getElementById("label_downloads").style.display="none";
	    }
	    document.getElementById("ps" + id).className="selected";
	    if (id == maxSelect) {
			if(document.getElementById("nextPage")){
	        	document.getElementById("nextPage").style.display="none";
			}
	    }
		if (id == 1){
			if (document.getElementById("previousPage")) {
				document.getElementById("previousPage").style.display="none";		    
			}
		}
	}
} 

function closePage(id) { 
	if (document.getElementById("article-content" + id)) { 
        document.getElementById("article-content" + id).style.display="none";
        document.getElementById("ps" + id).className="";
    }
} 

function setSelect(id) {		
	if(id != previousSelected) {
	closePage(previousSelected);
	openPage(id);		
	previousSelected = id;
	this.pageId = id;
	}	
}

function setNext() {		
	if(pageId != maxSelect) {
		closePage(pageId);			
		pageId++;
		openPage(pageId);
		previousSelected = pageId;
		this.pageId = pageId;
	}
}

function setPrev() {
	if(pageId != 1) {			
		closePage(pageId);
		pageId--;
		openPage(pageId);
		previousSelected = pageId;
		this.pageId = pageId;
	}
}

function showPic (whichpic, pageNumber, imagelist, position) {
	if (document.getElementById("placeholder" + pageNumber)) {
  		var previewURL = whichpic.href;
		// Set preview image
		document.getElementById("placeholder" + pageNumber).src = previewURL;
  		
		if(document.getElementById("previewImage" + pageNumber)){
			// Set href for full size image 
			var previewAnchor = document.getElementById("previewImage" + pageNumber)
			previewAnchor.setAttribute("href", imagelist[position]);
		}
		return false;
	} 
	else {
  		return true;
	}
}

function setCookie(c_name,value,expiredays){
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" + value + ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function addListener(element, event, listener, bubble) {
  if(element.addEventListener) {
    if(typeof(bubble) == "undefined") bubble = false;
    element.addEventListener(event, listener, bubble);
  } else if(this.attachEvent) {
    element.attachEvent("on" + event, listener);
  }
}
