/* methods for displaying menu and submenu on click */
var selindex;
menus_status_array = new Array ();// remembers state of switches
img_close = 'images/expandbutton-close.gif';
img_open = 'images/expandbutton-open.gif';
//this function is used to show and hide the sub categories in the left menu
function showHideSwitch (theid,clss,cath) 
{
  if(clss=="os")
{

displaying("os");

}else

  catdisp(clss,cath);
}
/*this displays all rows correspondin to a category and hides the rest*/
function catdisp(cls,cath)
{
var fil=document.getElementById('filters');
	var fils=fil.getElementsByTagName("h6");
	for(var j=0;j<fils.length;j++)
	{
	var p=fils[j];
	if(p.id=='hid'||p.id=='vis')
	p.id='hid'
	else if(p.id==cath)
	p.className='catvis';
	else
	p.className='cathid';
	}

	var partscollect;
	var argus = new Array();
	argus = cls.split('|');
	var inc=document.getElementById('results');
	var rows=inc.getElementsByTagName("tr")
	var alltags=new Array();
	var p=0;
	for(var k=0;k<rows.length;k=k+1)
	{
	if(rows[k].className!="ignore")
	{alltags[p]=rows[k];
	p=p+1;
	}
	}
	rows=alltags;	
	for (var i=0; i<alltags.length; i++)
	{
		var flag =0;
		for(j=0;j<argus.length-1;j++)
		{
			var cl=argus[j];
			if (alltags[i].className==cl || alltags[i].className=="head")
			{
				flag=1;
			}
		}
	if(flag==0)
	{
		var tr=alltags[i];
		tr.id="hid";
	}
	if(flag==1)
	{
		var tr1=alltags[i];
		tr1.id="vis";
	}
	}
	var tab=document.getElementById("inde");
	//alert(tab.id);
	var ta=tab.getElementsByTagName("table");
	
	var tables=ta[0].getElementsByTagName("tr");
	//alert(tables.length);
	for(var k=0;k<tables.length;k++)
	{
	tables[k].id="hid";
	
	}
}
/*This function is used to display all the softwares available*/
function displaying(clss)
{
var fil=document.getElementById('filters');
	var fils=fil.getElementsByTagName("h6");
	for(var j=0;j<fils.length;j++)
	{
	
	var p=fils[j];
	if(p.id=='vis')
	p.id='hid'
	if(p.className=='catvis')
	p.className='cathid';
	}

		var partscollect;
	var inc=document.getElementById('results');
	var alltags=inc.getElementsByTagName("tr")
	for (var i=0; i<alltags.length; i++)
	{
		var tr1=alltags[i];
		tr1.id="vis";
	}
	var tab=document.getElementById("inde");
	var ta=tab.getElementsByTagName("table");
	var tables=ta[0].getElementsByTagName("tr");
	for(var k=0;k<tables.length;k++)
	{
	tables[k].id="vis";
	}

}
//function to show/hide the rows with the given class
function toggleclass(cl)
{

cl1=cl.substr(0,cl.length-1);
cl2=cl.substr(cl.length-1,cl.length);
//alert(cl1);
if(cl1=="Windows"||cl1=="Linux"||cl1=="Solaris"||cl1=="Citrix"||cl1=="VCL"||cl1=="Windows7"||cl1=="VirtualXP"||cl1=="Ubuntu")
{
	var fil=document.getElementById('filters');
	var fils=fil.getElementsByTagName("h6");
	//alert(fils.length);
	for(var j=0;j<fils.length;j++)
	{
	var p=fils[j];
	if(p.id=='hid'||p.id=='vis')
	p.id='hid'
	else if(p.id=="cat"+cl1)
	p.className='catvis';
	else
	p.className='cathid';
	}
var tab=document.getElementById("inde");
	var ta=tab.getElementsByTagName("table");
	var tables=ta[0].getElementsByTagName("tr");
	for(var k=0;k<tables.length;k++)
	{
	tables[k].id="hid";
	}
var os=0;
if(cl1=="Windows")
os=0;
if(cl1=="Linux")
os=1;
//if(cl1=="Solaris")
//os=2;
if(cl1=="Citrix")
os=2;
if(cl1=="VCL")
os=3;
if(cl1=="Windows7")
os=4;
if(cl1=="VirtualXP")
os=5;
if(cl1=="Ubuntu")
os=6;
var partscollect;
	var inc=document.getElementById('results');
	var rows=inc.getElementsByTagName("tr")
	var alltags=new Array();
	var p=0;
	for(var k=0;k<rows.length;k=k+1)
	{
	if(rows[k].className!="ignore")
	{alltags[p]=rows[k];
	p=p+1;
	}
	}
	rows=alltags;
	
	for (var i=0; i<alltags.length; i++)
	{
		if (alltags[i].className!="head")
		{//alert(alltags.length);
			var tr=alltags[i];
			tr.id="vis";
		}
	}
	
	for (var i=0; i<alltags.length; i++)
	{
		if (alltags[i].className!="head")
		{//alert(alltags.length);
			var tr=alltags[i];
			var td=tr.getElementsByTagName("td")[3];
			var tab=td.getElementsByTagName("table")[0];
			var ttr=tab.getElementsByTagName("tr")[0];
			var ttd=ttr.getElementsByTagName("td")[os];
			var im=ttd.getElementsByTagName("img")[0];
			if(cl2==1 && ttd.getElementsByTagName("img").length!=0)
			{
				
			if(im.src.indexOf("yes.gif")==-1 && tr.id=="vis")
			{
				//alert(im.src);
				tr.id="hid";
			}
			else if(tr.id=="vis" && im.src.indexOf("yes.gif")!=-1)
				tr.id="vis";
			}
			else if( ttd.getElementsByTagName("img").length!=0)
			{
				if(im.src.indexOf("yes.gif")==-1)
						tr.id="hid";
				else if(im.src.indexOf("yes.gif")!=-1)
					tr.id="vis";
			}
				if( ttd.getElementsByTagName("img").length==0)
			{
					tr.id="hid";
			}
		}
	}
}
else{
	var fil=document.getElementById('filters');
	var fils=fil.getElementsByTagName("h6");
	var cll="."+cl+".";
	for(var j=0;j<fils.length;j++)
	{
	var p=fils[j];
	if(p.className==cll)
	{
	p.id='vis'
	}
	else
	if(p.id=='vis')
	p.id='hid'
	else if(p.id!='hid')
	p.className='cathid';
	}
	var partscollect;
	var inc=document.getElementById('results');
	var rows=inc.getElementsByTagName("tr")
	var alltags=new Array();
	var p=0;
	for(var k=0;k<rows.length;k=k+1)
	{
	if(rows[k].className!="ignore")
	{alltags[p]=rows[k];
	p=p+1;
	}
	}
	rows=alltags;
	for (var i=0; i<alltags.length; i++)
	{
		if (alltags[i].className!=cl && alltags[i].className!="head")
		{
			var tr=alltags[i];
			tr.id="hid";
		}
		if(alltags[i].className==cl)
		{
			var tr1=alltags[i];
			tr1.id="vis";
		}
	}
	}
	
}

var sortedOn = -1;;
/*This function is used for the sorting of the table.
The input parameter sortOn represents the column number based on which the table is sorted and type represents whether it is ascending or descending*/
function SortTable(sortOn,type) 
{
	var table = document.getElementById('results');
	var tbody = table.getElementsByTagName('tbody')[0];
	var rows = tbody.getElementsByTagName('tr');
	var rows1=new Array();
	var rowArray = new Array();
	var j=0;
	var t=0;
	var p=0;
	for(var k=0;k<rows.length;k=k+1)
	{
	if(rows[k].className!="ignore")
	{rows1[p]=rows[k];
	p=p+1;
	}
	}
	rows=rows1;
	if(sortOn==0)
	{
	for (var i=0, length=rows.length; i<length; i=i+1) 
	{
		rowArray[j] = new Object;
		rowArray[j].oldIndex = i; 
		if((rows[i].getElementsByTagName('td')[sortOn].getElementsByTagName('a')[0].firstChild.nodeValue)!=null && (rows[i].getElementsByTagName('td')[sortOn].getElementsByTagName('a')[0].firstChild.nodeValue.length)>0)
		{
			rowArray[j].value = rows[i].getElementsByTagName('td')[sortOn].getElementsByTagName('a')[0].firstChild.nodeValue;
			j=j+1;
		}
	}
	}
	else
	{
	for (var i=0, length=rows.length; i<length; i=i+1) 
	{
		rowArray[j] = new Object;
		rowArray[j].oldIndex = i; 
		if((rows[i].getElementsByTagName('td')[sortOn].firstChild.nodeValue)!=null && (rows[i].getElementsByTagName('td')[sortOn].firstChild.nodeValue.length)>0)
		{
			rowArray[j].value = rows[i].getElementsByTagName('td')[sortOn].firstChild.nodeValue;
			j=j+1;
		}
	}

	}	
	if (type=='desc')
	{
		rowArray.sort(RowCompare1);
	}
	else
	{
		sortedOn = sortOn;
		rowArray.sort(RowCompare);
	}
	var newTbody = document.createElement('tbody');
	for (var i=0, length=rowArray.length ; i<length; i++)
	{
		newTbody.appendChild(rows[rowArray[i].oldIndex].cloneNode(true));
	}
	table.replaceChild(newTbody, tbody);
}

/*This function does the actual comparison between the row values*/
function RowCompare(a, b)
{ 
	var aVal = a.value;
	var bVal = b.value;
	aVal=aVal.toLowerCase();
	bVal=bVal.toLowerCase();
	return (aVal == bVal ? 0 : (aVal > bVal ? 1 : -1));
}
/*This function does the actual comparison between the row values*/
function RowCompare1(a, b)
{ 
	var aVal = a.value;
	var bVal = b.value;
	aVal=aVal.toLowerCase();
	bVal=bVal.toLowerCase();
	return (aVal == bVal ? 0 : (aVal < bVal ? 1 : -1));
}
/*This function does the actual comparison between the date row values*/
function mdyOrdA(a, b)
{
	var dateRE = /^(\d{2})[\/\- ](\d{2})[\/\- ](\d{4})/;
	a=a.value;
	b=b.value;
	a = a.replace(dateRE,"$3$1$2");
	b = b.replace(dateRE,"$3$1$2");
	if (a>b) return 1;
	if (a <b) return -1;
	return 0; 
}
/*This function does the actual comparison between the date row values*/
function mdyOrdA1(a, b)
{
	var dateRE = /^(\d{2})[\/\- ](\d{2})[\/\- ](\d{4})/;
	a=a.value;
	b=b.value;
	a = a.replace(dateRE,"$3$1$2");
	b = b.replace(dateRE,"$3$1$2");
	if (a<b) return 1;
	if (a >b) return -1;
	return 0; 
}
/*this method pops up a new window with the details of the product that was clicked upon*/
function display(name)
{
LeftPosition = (screen.width) ? (screen.width-600)/2 : 0;
TopPosition = (screen.height) ? (screen.height-400)/2 : 0;
settings="scrollbars=yes,resizable=1,width=800px,height=600px,top="+TopPosition+",left="+LeftPosition;
info = window.open("app_details.php?id="+name,"Window"+name,settings );
}

function next()
{
//	alert("next");
	var tabdiv=document.getElementById('tabs');
	var tabs=tabdiv.getElementsByTagName('li');
	for(var j=0;j<tabs.length;j++)
if(tabs[j].className=="TabbedPanelsTab TabbedPanelsTabSelected")
	selindex=j;
	for(var i=0;i<tabs.length-1;i++)
	{
		var thistab=tabs[i];
		if(thistab.id=="showSwitch"&& i !=0)
		{
			
			if((i+6)<tabs.length-2)
			{
				thistab.id="hideSwitch";
					if(i==selindex)
				thistab.className="TabbedPanelsTab";
				tabs[i+6].id="showSwitch";
				if((i+6)==selindex)
				tabs[i+6].className="TabbedPanelsTab TabbedPanelsTabSelected";	
				break;
			}
		}
			
	}
	
}

function prev()
{
	var tabdiv=document.getElementById('tabs');
	var tabs=tabdiv.getElementsByTagName('li');
		for(var j=0;j<tabs.length;j++)
if(tabs[j].className=="TabbedPanelsTab TabbedPanelsTabSelected")
	selindex=j;

	for(var i=tabs.length-2;i>0;i--)
	{
		var thistab=tabs[i];
		if(thistab.id=="showSwitch"&& i!=(tabs.length-2))
		{
			if((i-6)>0)
			{
				thistab.id="hideSwitch";
				if(i==selindex)
				thistab.className="TabbedPanelsTab";
				tabs[i-6].id="showSwitch";	
				if((i-6)==selindex)
				tabs[i-6].className="TabbedPanelsTab TabbedPanelsTabSelected";	
				break;
			}
		}
	}
}
