/*	Initiate function call on page load. This allows multiple function calls
	Script taken from Simon Willison's Weblog
	http://simonwillison.net/2004/May/26/addLoadEvent/
*/
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

addLoadEvent(externalLinks);
addLoadEvent(popupWindow);

// Opens links in new windows when rel="external"
function externalLinks() {
	if (!document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external")
		{
			//alert("anchor is: " + anchor.innerHTML)
			anchor.target = "_blank"
			anchor.title = "Link opens in a new window"
		}
	}
}

function addToFavourites(url, title){
	if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4)) {
		window.external.AddFavorite(url,title);
	} else if (navigator.appName == "Netscape") {
		window.sidebar.addPanel(title,url,"");
	} else {
		alert("Press CTRL-D (Netscape) or CTRL-T (Opera) to bookmark");
	}	
}

function removeElement(par, row) {
	if(document.getElementById){
		var p = document.getElementsByTagName("tbody")[0];
		var basket_item = document.getElementById(row);
		if(document.removeChild){
			if(confirm("Are you sure you want to remove this item?")){
			p.removeChild(basket_item);
			}
		}
	}
}

// create a new window for popup links
function popupWindow(){
	if(document.getElementById){
		var popup = getElementsByClassName(document, 'a', 'popup');
		for(var i=0;i<popup.length;i++){
			var url = popup[i].href;
			popup[i].onclick = function(){
				openPopUp(this.getAttribute("href"));
				return false;
			}
		}
	}
}

//This function is for opening Order tracking POD Image
function OpenPopUpPOD(url){
    var load = window.open(url,'pod','scrollbars=yes,menubar=no,height=700,width=500,resizable=yes,toolbar=no,location=no,status=no,left=200');
}

//
function openPopUp(href){
	var wine_order = window.open(href,'wine_order','width=300,height=420,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes');
	wine_order.focus();
}

function getElementsByClassName(oElm, strTagName, oClassNames){
	if(document.getElementById){
		var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
		var arrReturnElements = new Array();
		var arrRegExpClassNames = new Array();
		if(typeof oClassNames == "object"){
			for(var i=0; i<oClassNames.length; i++){
				arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
			}
		}
		else{
			arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
		}
		var oElement;
		var bMatchesAll;
		for(var j=0; j<arrElements.length; j++){
			oElement = arrElements[j];
			bMatchesAll = true;
			for(var k=0; k<arrRegExpClassNames.length; k++){
				if(!arrRegExpClassNames[k].test(oElement.className)){
					bMatchesAll = false;
					break;
				}
			}
			if(bMatchesAll){
				arrReturnElements.push(oElement);
			}
		}
		return (arrReturnElements)
	}
}
function hideReserves(){
	if(document.getElementById){
		if (document.getElementById('reserves0')) {
			var tr0 = document.getElementById('reserves0').childNodes;
			var tr1 = document.getElementById('reserves1').childNodes;
			for (var i = 0; i < tr0.length; i++) {
				if (tr0[i].childNodes.length > 0) {
					tr0[i].style.display = 'none';
					tr1[i].style.display = 'none';
				}
			}
		}
	}
}
function showReserves(){
	if(document.getElementById){
		var browser = navigator.userAgent;
		//
		if (document.getElementById('reserves0')) {
			var tr0 = document.getElementById('reserves0').childNodes;
			var tr1 = document.getElementById('reserves1').childNodes;
			for (var i = 0; i < tr0.length; i++) {
				if (tr0[i].childNodes.length > 0) {
					if (browser.indexOf("MSIE 6") != -1 && browser.indexOf("Opera") == -1) {
						tr0[i].style.display = 'block';
						tr1[i].style.display = 'block';
					}
					else {
						tr0[i].style.display = 'table-cell';
						tr1[i].style.display = 'table-cell';
					}
				}
			}
			var showLink = document.getElementById('reservesTitle');
			showLink.style.display = 'none';
		}
	}
}

function showHideOrderData(which){
	if(document.getElementById){
		var browser = navigator.userAgent;
		var orderTable = document.getElementById('recent_orders').tBodies[0].childNodes;
		var num = 0;
		if(!orderTable[0].childNodes[0].style){
			num = 1;
		}
		if(which == null){
			for(var i=0;i<orderTable.length;i++){
				if(orderTable[i].childNodes.length>0){
					if(orderTable[i].id.indexOf('order') == 0){
						if(orderTable[i].style.display != "none"){
							orderTable[i].style.display = "none"
						}else{
							if(browser.indexOf("MSIE 6") != -1 && browser.indexOf("Opera") == -1){
								orderTable[i].style.display = 'block';
							}else{
								orderTable[i].style.display = 'table-cell';
							}
						}
					}
				}
			}
		}else{
			var counter = 0;
			for(var i=0;i<orderTable.length;i++){
				if(orderTable[i].childNodes.length>0){
					if(counter == which){
						var cell = document.getElementById('order'+counter);
						/*var div = document.getElementById('order'+counter).getElementsByTagName('div')[0];
						if(div.className != "hide"){
							div.className = "hide";
						}else{
							div.className = "hide";
						}*/
						if(cell.style.display == "block" || cell.style.display == "table-row"){
							cell.style.display = 'none';
							var prevSibling = cell.previousSibling;
							while (prevSibling.nodeType != 1) {
								prevSibling = prevSibling.previousSibling;
							}
							prevSibling.style.backgroundColor = '#FFFFFF';
							prevSibling.getElementsByTagName('a')[0].innerHTML = "View details";
						}else{
							if (browser.indexOf("MSIE 6") != -1 && browser.indexOf("Opera") == -1) {
								cell.style.display = 'block';
								var prevSibling = cell.previousSibling;
								while (prevSibling.nodeType != 1) {
									prevSibling = prevSibling.previousSibling;
								}
								prevSibling.style.backgroundColor = '#EEEEEE';
								prevSibling.getElementsByTagName('a')[0].innerHTML = "Hide details";
								
							}else if(browser.indexOf("MSIE 7") != -1 && browser.indexOf("Opera") == -1){
								cell.style.display = 'block';
								var prevSibling = cell.previousSibling;
								while (prevSibling.nodeType != 1) {
									prevSibling = prevSibling.previousSibling;
								}
								prevSibling.style.backgroundColor = '#EEEEEE';
								prevSibling.getElementsByTagName('a')[0].innerHTML = "Hide details";
							}else{
								cell.style.display = 'table-row';
								var prevSibling = cell.previousSibling;
								while (prevSibling.nodeType != 1) {
									prevSibling = prevSibling.previousSibling;
								}
								prevSibling.style.backgroundColor = '#EEEEEE';
								prevSibling.getElementsByTagName('a')[0].innerHTML = "Hide details";
							}
						}
					}
					counter++;
				}
			}
		}
	}
}

function hideMultipleSelect() {
	var browser = navigator.userAgent;
	if(document.getElementById){
		var multiples = getElementsByClassName(document, 'select', 'multiple');
		for(var i=0;i<multiples.length;i++){
			var list = multiples[i];
			/*if(browser.indexOf("MSIE 6") != -1 && browser.indexOf("Opera") == -1){
				list.setAttribute("className", "multiple");
			}else{
				list.setAttribute("class", "multiple");
			}*/
			list.removeAttribute("multiple");
			if (list.options[0]) {
				list.options[0].selected = true;
			}
		}
	}
}
function selectMultiple(element) {
	if(document.getElementById){
		var list = document.getElementById(element);
		var plus = document.getElementById(element+"_plus");
		list.setAttribute("multiple", "multiple");
		plus.parentNode.removeChild(plus);
	}
}