// JavaScript Document
function nvalidateEmail(email)
{
    var splitted = email.match("^(.+)@(.+)$");
    if(splitted == null) return false;
    if(splitted[1] != null )
    {
      var regexp_user=/^\"?[\w-_\.]*\"?$/;
      if(splitted[1].match(regexp_user) == null) return false;
    }
    if(splitted[2] != null)
    {
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null) 
      {
	    var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
	    if(splitted[2].match(regexp_ip) == null) return false;
      }// if
      return true;
    }
return false;
}


function nvalidate() {

if (document.newsletter.email.value.length==0) {
alert("Please Enter EMAIL Address");
return false;
}
if(!nvalidateEmail(document.newsletter.email22.value)) {
    
alert("Please Enter Valid EMAIL Address"); 
return false; 
}
else document.newsletter.submit()
return true;
}

function nvalidate_2() {

if (document.newsletter_2.email.value.length==0) {
alert("Please Enter EMAIL Address");
return false;
}
if(!nvalidateEmail(document.newsletter_2.email.value)) {
    
alert("Please Enter Valid EMAIL Address"); 
return false; 
}
else document.newsletter_2.submit()
return true;
}

var timeout	= 500;
var closetimer	= 0;
var ddmenuitem	= 0;

function mopen(id)
{	
	// cancel close timer
	mcancelclosetime();

	// close old layer
	if(ddmenuitem) ddmenuitem.style.display = 'none';

	// get new layer and show it
	ddmenuitem = document.getElementById("menu-" +id);
	
	if(ddmenuitem) 
		ddmenuitem.style.display= 'block';

}
// close showed layer
function mclose()
{
	if(ddmenuitem) ddmenuitem.style.display = 'none';
}

// go close timer
function mclosetime()
{
	closetimer = window.setTimeout(mclose, timeout);
}

// cancel close timer
function mcancelclosetime()
{
	if(closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

// close layer when click-out
document.onclick = mclose; 

var pageItems=null;
var itemBrands=null;
var currentPageIndex=0;
var currentPageSort=0;
var directionPageSort=0;

function pageItem(defaultValue,name,price,brand,html) {
	this.defaultValue=defaultValue;
	this.name=name;
	this.price=price;
	this.brand=brand;
	this.html=html;
	this.visible=true;
}

function initPaging() {
	
	window.pageItems=new Array();
	window.itemBrands=new Array();
	
	var els=document.getElementsByTagName("table");
	
	for (var i=0;i<els.length;i++) {
		if (els[i].className=="one-page-item") {
		
			var p=new pageItem(
				els[i].getAttribute("attr-default"),
				els[i].getAttribute("attr-name"),
				els[i].getAttribute("attr-price"),
				els[i].getAttribute("attr-brand"),
				els[i].parentNode.parentNode.cloneNode(true)
				);
		
			pageItems[pageItems.length]=p;
			
			var b=true;
			
			for (var j=0;j<itemBrands.length;j++) {
				if (p.brand!="" && itemBrands[j]==p.brand) {
					b=false;
					break;
				}
			}
			if (b && p.brand!="") {
				itemBrands[itemBrands.length]=p.brand;
			}
		}
		
	}
	
	buildPagingControls();
	
	drawPage();
	
	buildRefiner();
	
	//updatePageControls();
	
}

function refineResults() {

	var base=document.getElementById("refiner-base");
	
	if (base) {
	
		var els=base.getElementsByTagName("input");
		
		var all=true;
		
		for (var j=0;j<pageItems.length;j++) {
			
			if (pageItems[j].brand==null || pageItems[j].brand=="") 	
				pageItems[j].visible=false;
		
		}
		
		for (var i=0;i<els.length;i++) {
		
			if (els[i].type=="checkbox") {
			
				if (els[i].checked)
					all=false;
			
				for (var j=0;j<pageItems.length;j++) {
				
					if (pageItems[j].brand==els[i].value) {
					
						pageItems[j].visible=els[i].checked;
					
					}
				
				}
			
			}
		
		}
		
		if (all) {
			for (var j=0;j<pageItems.length;j++) {
				
				pageItems[j].visible=true;
			
			}
		}
		
		currentPageIndex=0;
		currentPageSort=0;
		
		drawPage();
		
	}

}

function buildRefiner() {

	var base=document.getElementById("refiner-base");
	
	if (base) {

		for (var i=0;i<itemBrands.length;i++) {
			
			var div=base.appendChild(document.createElement("div"));
			
			div.className="brand";
			
			var div1=div.appendChild(document.createElement("div"));
			
			div1.innerHTML="<input type=\"checkbox\" value=\"" + itemBrands[i] + "\"/>" + itemBrands[i];
			
			//div.appendChild(document.createTextNode());
			
		
		}
	
	}

}

function drawPage() {
	
	var base=document.getElementById("paging-base");
	
	if (base) {
	
		base=base.getElementsByTagName("tbody")[0];
		
		removeAll(base);
	
		var a=visiblePages();
		
		var minPageItemIndex=currentPageIndex * itemsPerPage;
		var maxPageItemIndex=minPageItemIndex + itemsPerPage;
		
		if (maxPageItemIndex>visibleItemsNumber()) {
			maxPageItemIndex=a.length;
		}
		
		if (currentPageIndex==-1) {
			minPageItemIndex=0;
			maxPageItemIndex=a.length;
		}
				
		for (var i=minPageItemIndex;i<maxPageItemIndex;i++) {
		
			//alert(a[i].html.innerHTML);
		
			base.appendChild(a[i].html.cloneNode(true));
		
		}
		
		updatePageControls();
	}

	
	
	
}

function clickPageSortLink(n) {

	if (currentPageSort==n) {
		if (directionPageSort==1)
			directionPageSort=0;
		else 
			directionPageSort=1;
		}	
	else 	
		directionPageSort=0;
		
	currentPageSort=n;
	
	drawPage();
	
}

function clickPageNavigation(n) {
	window.currentPageIndex=n;
	drawPage();
}

function visibleItemsNumber() {
	return visiblePages().length;
}

function sortByPrice(a,b) {
	var x = parseFloat(a.price);
    var y = parseFloat(b.price);
    
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function sortByDefault(a,b) {
	
	var x = parseInt(a.defaultValue);
    var y = parseInt(b.defaultValue);
    
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function sortByName(a,b) {
	
	var x = a.name;
    var y = b.name;
    
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function sortByPrice2(a,b) {
	var x = parseFloat(a.price);
    var y = parseFloat(b.price);
    
    return ((x < y) ? 1 : ((x > y) ? -1 : 0));
}

function sortByDefault2(a,b) {
	
	var x = parseInt(a.defaultValue);
    var y = parseInt(b.defaultValue);
    
    return ((x < y) ? 1 : ((x > y) ? -1 : 0));
}

function sortByName2(a,b) {
	
	var x = a.name;
    var y = b.name;
    
    return ((x < y) ? 1 : ((x > y) ? -1 : 0));
}

function visiblePages() {

	//filtering	
	var b=new Array();	
	for (var i=0;i<pageItems.length;i++) {
		if (pageItems[i].visible)
			b[b.length]=pageItems[i];
	};	
	//sorting
	switch (currentPageSort) {
			case 0: 
				a=b.sort(directionPageSort==0 ? sortByDefault : sortByDefault2);
				break;
			case 1: 
				a=b.sort(directionPageSort==0 ? sortByName : sortByName2);
				break;
			case 2: 
				a=b.sort(directionPageSort==0 ? sortByPrice : sortByPrice2);
				break;
			default:
				a=b.sort(sortByDefault);	
		}
	
	return a;

}

function removeAll(x) {

	if (x==null)
		return;

	while (x.childNodes.length>0) {
		x.removeChild(x.childNodes[0]);
	}

}

function updatePageControls() {
	var div,span,a,a1;
	var x=null;
	var y=null;
	x=document.getElementById("divPageControlsRight");
	y=document.getElementById("divPageControlsRightbottom");
	
	var minPage=1;
	var numberOfVisibleElements=visibleItemsNumber();
	var maxPage=Math.floor(numberOfVisibleElements / itemsPerPage);
	
	if (maxPage*itemsPerPage<numberOfVisibleElements) {
		maxPage=maxPage + 1;
	}
	
	if (x) {
	
		var minPageItemIndex=(currentPageIndex * itemsPerPage + 1);
		var maxPageItemIndex=minPageItemIndex + itemsPerPage - 1;
		
		if (maxPageItemIndex>visibleItemsNumber()) {
			maxPageItemIndex=visibleItemsNumber();
		}
		
		if (currentPageIndex==-1) {
			minPageItemIndex=1;
			maxPageItemIndex=numberOfVisibleElements;
		}
	
		x.innerHTML="Items " + minPageItemIndex + "-" + maxPageItemIndex + " of " + visibleItemsNumber();
		y.innerHTML=x.innerHTML;
	}
	x=document.getElementById("divPageControlsLeft");
	y=document.getElementById("divPageControlsLeftbottom");
	if (x) {
		
		removeAll(x);
		removeAll(y);
	
		x.appendChild(document.createTextNode("Page "));
		y.appendChild(document.createTextNode("Page "));
		
		for (var i=minPage;i<maxPage+1;i++) {
			
			a=x.appendChild(document.createElement("A"));							
			a.href="#";
			a.appendChild(document.createTextNode(i));
			
			a1=y.appendChild(document.createElement("A"));				
			a1.href="#";
			a1.appendChild(document.createTextNode(i));
			
			if (i==(currentPageIndex + 1)) {
				
				a.className="selected";
				a1.className="selected";
				
			} else {
			
				a.className="";
				a1.className="";
				
			}
			
			a.onclick=(
					function( n){ 
						return (
								function()
									{ 
										clickPageNavigation(n);
										return false; 
									}
								);
					})(i-1);
					
			a1.onclick=(
					function( n){ 
						return (
								function()
									{ 
										clickPageNavigation(n);
										return false; 
									}
								);
					})(i-1);
			
			if (maxPage>1) {
				span=x.appendChild(document.createElement("span"));			
				span.appendChild(document.createTextNode(" | "));
				
				span=y.appendChild(document.createElement("span"));			
				span.appendChild(document.createTextNode(" | "));
			}
			
		}
		
		if (maxPage>1) {
			a=x.appendChild(document.createElement("A"));	
			a.href="#";
			a.appendChild(document.createTextNode("View All"));		
			
			a1=y.appendChild(document.createElement("A"));	
			a1.href="#";
			a1.appendChild(document.createTextNode("View All"));		
			
			if (currentPageIndex==-1) {
				a.className="selected";
				a1.className="selected";
			}
			a.onclick=(
						function( n){ 
							return (
									function()
										{ 
											clickPageNavigation(n);
											return false; 
										}
									);
						})(-1);
			a1.onclick=(
				function( n){ 
					return (
							function()
								{ 
									clickPageNavigation(n);
									return false; 
								}
							);
				})(-1);
		}			
		
	}
	x=document.getElementById("divPageControlsSort");
	y=document.getElementById("divPageControlsSortBottom");
	if (x && y) {
	
		var els=x.getElementsByTagName("a");
		var els1=y.getElementsByTagName("a");
	
		els[0].className="";
		els[1].className="";
		els[2].className="";
		
		els1[0].className="";
		els1[1].className="";
		els1[2].className="";
	
		switch (currentPageSort) {
			case 0: 
				els[0].className="selected";	
				els1[0].className="selected";	
				break;
			case 1: 
				els[1].className="selected";	
				els1[1].className="selected";	
				break;
			case 2: 
				els[2].className="selected";	
				els1[2].className="selected";	
				break;
		}
	}
	x=document.getElementById("divPageControlsNextPrev");
	y=document.getElementById("divPageControlsNextPrevBottom");
	if (x) {
		
		removeAll(x);
		removeAll(y);
		
		if (currentPageIndex>=0) {
			if (currentPageIndex>0) {
			
				a=x.appendChild(document.createElement("A"));	
				a.href="#";
				a.appendChild(document.createTextNode("Previous"));		
				a.className="prev";
				
				a1=y.appendChild(document.createElement("A"));	
				a1.href="#";
				a1.appendChild(document.createTextNode("Previous"));		
				a1.className="prev";
				
				a.onclick=(
							function(n){ 
								return (
										function()
											{ 
												clickPageNavigation(n);
												return false; 
											}
										);
							})(currentPageIndex-1);
				a1.onclick=(
					function(n){ 
						return (
								function()
									{ 
										clickPageNavigation(n);
										return false; 
									}
								);
					})(currentPageIndex-1);
			}
			
			x.appendChild(document.createTextNode("Page " + (currentPageIndex + 1) + " of " + maxPage));
			y.appendChild(document.createTextNode("Page " + (currentPageIndex + 1) + " of " + maxPage));
			
			if (currentPageIndex+1<maxPage) {
				a=x.appendChild(document.createElement("A"));	
				a.href="#";
				a.appendChild(document.createTextNode("Next"));		
				a.className="next";
				
				a1=y.appendChild(document.createElement("A"));	
				a1.href="#";
				a1.appendChild(document.createTextNode("Next"));		
				a1.className="next";
				
				a.onclick=(
							function(n){ 
								return (
										function()
											{ 
												clickPageNavigation(n);
												return false; 
											}
										);
							})(currentPageIndex+1);
							
				a1.onclick=(
					function(n){ 
						return (
								function()
									{ 
										clickPageNavigation(n);
										return false; 
									}
								);
					})(currentPageIndex+1);
			}
		}
		
	}
	/*	
	y=document.getElementById("controlBottom");
	
	alert(y);
	
	y.appendChild(document.getElementById("divPageControlsLeft").cloneNode(true));
	y.id="divPageControlsLeftbottom";
	
	y.appendChild(document.getElementById("divPageControlsRight").cloneNode(true));
	y.id="divPageControlsRightbottom";
	
	y=document.getElementById("controlBottom2");
		
	
	y=document.getElementById("divPageControlsLeftbottom");
	y.innerHTML=document.getElementById("divPageControlsLeft").innerHTML;
	y=document.getElementById("divPageControlsRightbottom");
	y.innerHTML=document.getElementById("divPageControlsRight").innerHTML
	y=document.getElementById("divPageControlsSortbottom");
	y.innerHTML=document.getElementById("divPageControlsSort").innerHTML
	y=document.getElementById("divPageControlsNextPrevBottom");
	y.innerHTML=document.getElementById("divPageControlsNextPrev").innerHTML
	*/
	
}

function buildPagingControls() {
	var div,span,a;
	var x=null;
	x=document.getElementById("divPageControlsRight");
	if (x) {
		//x.appendChild(document.createTextNode("Items "));
	}
	x=document.getElementById("divPageControlsLeft");
	if (x) {
	}
	x=document.getElementById("divPageControlsSort");
	if (x) {
	
		div=x.appendChild(document.createElement("div"));
		
		div.appendChild(document.createTextNode("Sort By: "));
		
		a=div.appendChild(document.createElement("a"));
		a.href="#";
		a.onclick=(
					function(n){ 
						return (
								function()
									{ 
										clickPageSortLink(n);
										return false; 
									}
								);
					})(0);
		
		a.appendChild(document.createTextNode("Default"));		
		span=div.appendChild(document.createElement("span"));
		span.appendChild(document.createTextNode(" | "));
		
		a=div.appendChild(document.createElement("a"));
		a.onclick=(
					function(n){ 
						return (
								function()
									{ 
										clickPageSortLink(n);
										return false; 
									}
								);
					})(1);
		a.appendChild(document.createTextNode("Name"));		
		a.href="#";
		span=div.appendChild(document.createElement("span"));
		span.appendChild(document.createTextNode(" | "));
		
		a=div.appendChild(document.createElement("a"));
		a.href="#";
		a.onclick=(
					function(n){ 
						return (
								function()
									{ 
										clickPageSortLink(n);
										return false; 
									}
								);
					})(2);
		a.appendChild(document.createTextNode("Price"));		
		
	}
	y=document.getElementById("divPageControlsSortBottom");
	if (y) {
	
		div=y.appendChild(document.createElement("div"));
		
		div.appendChild(document.createTextNode("Sort By: "));
		
		a=div.appendChild(document.createElement("a"));
		a.href="#";
		a.onclick=(
					function(n){ 
						return (
								function()
									{ 
										clickPageSortLink(n);
										return false; 
									}
								);
					})(0);
		
		a.appendChild(document.createTextNode("Default"));		
		span=div.appendChild(document.createElement("span"));
		span.appendChild(document.createTextNode(" | "));
		
		a=div.appendChild(document.createElement("a"));
		a.onclick=(
					function(n){ 
						return (
								function()
									{ 
										clickPageSortLink(n);
										return false; 
									}
								);
					})(1);
		a.appendChild(document.createTextNode("Name"));		
		a.href="#";
		span=div.appendChild(document.createElement("span"));
		span.appendChild(document.createTextNode(" | "));
		
		a=div.appendChild(document.createElement("a"));
		a.href="#";
		a.onclick=(
					function(n){ 
						return (
								function()
									{ 
										clickPageSortLink(n);
										return false; 
									}
								);
					})(2);
		a.appendChild(document.createTextNode("Price"));		
		
	}
	x=document.getElementById("divPageControlsNextPrev");
	if (x) {
	}
}

