/*Pop Open Ringtone Window*/
function popRings(url)
{
	var winStyle 		= 'height=210,width=420,titlebar=no,toolbar=no,menubar=no,location=no,scrollbars=no,resizable=no,status=no,directories=no';
	var center_window 	= window.open(url,'center_window', winStyle);

//	center_window.moveTo(10,10);
	center_window.focus();
}
/*Pop Open Graphics Window*/
function popGame(url)
{
	var game_window = window.open(url,'game_window','');
	//game_window.moveTo(10,10);
	game_window.focus();
}
/*Pop Open Graphics Window*/
function popGraphics(url)
{
	var graphic_window = window.open(url,'graphic_window','height=250,width=250,titlebar=0,toolbar=0,menubar=0,location=0,scrollbars=0,resizable=0,status=0,directories=0');
	//center_window.moveTo(10,10);
	graphic_window.focus();
}

var scId, fcId,fcgroup, fcarr="", totalrows, pagerows = 20, curpage = 1, pagenoarr="";
function initC()
{
	
	var url, sc;
	if(document.getElementById("pagerows"))
	{
		pagerows = document.getElementById("pagerows").value;
	}
	url = "data/category.xml";
	makeRequest(url, fillAC);
//	alert(url);
/*	if(scId)
	{
		url = "data/"+scId + ".xml";
		makeRequest(url, fillProduct);	
	}*/
}

function initP()
{
	url = "data/"+scId + ".xml";
//	alert(url);
	makeRequest(url, fillProduct);
}
var http_request = false;
function makeRequest(url, functionName)
{
	http_request = false;
	if(window.XMLHttpRequest)
	{
		http_request = new XMLHttpRequest();
		if(http_request.overrideMimeType)
		{
			http_request.overrideMimeType("text/xml");
		}
	}
	if(window.ActiveXObject)
	{
		try
		{
			http_request = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(e)
		{
			try
			{
				http_request = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch(e){}
		}
	}
	
	if(!http_request)
	{
		alert("can't create XMLHTTP instance");
		return false;
	}
	http_request.onreadystatechange = functionName;
	http_request.open('GET', url, true);
	http_request.send(null);
}

function fillAC()
{
//	alert(http_request.readyState);
	var fc = document.getElementById("fcat");
	var sc = document.getElementById("scat");
	if(http_request.readyState == 4)
	{
		if(http_request.status == 200 || http_request.status == 0)
		{
//		alert(http_request.status);
			xmlDoc = http_request.responseXML;
//			alert(http_request.responseText);
			
			var html = genFCHTML(xmlDoc);
			var html2 = genSCHTML(xmlDoc);
//			alert(html);
			if(!html || html == "")return;
//			alert(html);
			fc.innerHTML = html;
			sc.innerHTML = html2;
		}

	}	
}
function formatFC(obj)
{
	while(obj.indexOf('.') != -1 )
	{
		obj = obj.replace('.',' ');
	}
	return obj;
}
function genFCHTML(xmlDoc)
{
	var root, html="",classname, child, text, index = 0;
	root = xmlDoc.getElementsByTagName("title").item(0);
//	alert("ddd  " + root.childNodes.length);
	if(!root || root.childNodes.length == 0)return;
	
	html += '<ul id="firstCategory">';
	for(var i=0; i<root.childNodes.length; i++)
	{
		child = root.childNodes.item(i);
		if(!child || child.childNodes.length <= 0)
		{ continue;;}
		text = child.childNodes.item(0).data;
		if(fcarr != "")fcarr += ",";
		fcarr += text;
		if(index == 0) 
		{
			classname = "catActive";
			fcgroup = child.nodeName;
			fcId = text;
		}
		else 
		{
			classname = "catStatic";
		}
		html += '<li id="'+text+'" class='+classname+'><a href="javascript:fcmake(\''+child.nodeName+'\',\''+text+'\')">'+formatFC(text)+'</a></li>';
		index++;
		
	}
	html += '</ul>';
//	alert(html);
	return html;
}

function genSCHTML(xmlDoc)
{
	var root, html="",classname, child, text, index = 0;
	root = xmlDoc.getElementsByTagName(fcId).item(0);
	if(!root) return;
	html += '<ul id="secondCategory">';
//	alert(fcId+"||"+root.childNodes.length);
	for(var i=0; i<root.childNodes.length; i++)
	{
		child = root.childNodes.item(i);
		if(!child || child.childNodes.length <= 0)continue;
		text = child.childNodes.item(0).data;
		var id = child.nodeName;
		if(0 == index)
		{
			html += '<li class="catActive" ><a href="javascript:scmake(\''+id+'\')"><span>'+text+'</span></a></li>';
			scId = id;
			initP();
		}
		else
		{
			html += '<li class="catStatic" ><a href="javascript:scmake(\''+id+'\')"><span>'+text+'</span></a></li>';
		}
		index++;
	}
	html += '</ul>';
//	alert(html);
	return html;
}
var gametitles = "preview,title,company,price,rating,try,buy";
var ringtonetitles = "artist,title,price,rating,listen,buy";
var wallpapertitles = "preview,title,artist,price,rating,mature,buy";

function getTitlesbyFcgroup()
{
	var arr;
	if(fcgroup == "ringtone")
	{
		arr = ringtonetitles.split(",");		
	}
	else if(fcgroup == "game")
	{
		arr = gametitles.split(",");
	}
	else
	{
		arr = wallpapertitles.split(",");
	}
	document.getElementById("titles").className = fcId+"Title";	
	return arr;
}


function fillProduct()
{
	var titles = document.getElementById("titles");
	var items = document.getElementById("items");
	var root, html="", html2="", xmlDoc, child, item, text, beginIndex, endIndex, rows=0;
	
	
	if(http_request.readyState == 4)
	{
		if(http_request.status == 200 || http_request.status == 0)
		{
		
			
	//	alert("dd"+http_request.status);
			//fill titles
						
			xmlDoc = http_request.responseXML;

			root = xmlDoc.getElementsByTagName("root").item(0);
			if(!root) return;
			totalrows = root.childNodes.length;
		//	alert("----------"+root.nodeName);
		
			if(totalrows == 0)return; 

			if(root.childNodes.item(0).childNodes.length <= 0)
			{
			//	alert("1");
				totalrows = (totalrows-1)/2;
			}
			beginIndex = (curpage - 1)*pagerows;
			if(curpage == Math.ceil(totalrows/pagerows) )
			{
				endIndex = totalrows-1;
				if(totalrows <= pagerows)
					beginIndex = 0;
				else
					beginIndex = endIndex - totalrows % pagerows;
			}
			else
			{
				endIndex = curpage * pagerows-1;
				beginIndex = endIndex - pagerows+1;
			}
		//	alert("totalrows-----"+totalrows+"----beginIndex---------"+beginIndex+"-------endIndex-------"+endIndex);
			if(root.childNodes.item(0).childNodes.length <= 0)
			{
			//	alert("3");
				endIndex = 2*endIndex+1;
				beginIndex = 2*beginIndex+1;
			}
			
			
		//	alert("totalrows-----"+totalrows+"----beginIndex---------"+beginIndex+"-------endIndex-------"+endIndex);


			//gen page no list
			genPageNoList();
			
			var titlearr = getTitlesbyFcgroup();
			html += '<ul id="'+fcgroup.toLowerCase()+'Title">';
			for(var i=0; i<titlearr.length; i++)
			{
				html += '<li id="'+titlearr[i]+'">'+titlearr[i]+'</li>';
			}
			html += '</ul>';
	

			html2 += '<div class="'+fcgroup.toLowerCase()+'Items">';
			for(var i=beginIndex; i<=endIndex; i++)
			{
				if(root.childNodes.length <= 0)continue;
				
				child = root.childNodes.item(i);
				
				if(child.childNodes.length <= 0)continue;
		//		alert("----------"+child.nodeName);
		
				html2 += '<div id="'+fcgroup.toLowerCase()+'Item"><ul>';
				var previewimageurl, previewactionurl, showindex=-1, htmlarr = new Array();
				for(var j=0; j<child.childNodes.length; j++)
				{
					showindex = -1;
					item = child.childNodes.item(j);
					if(item.childNodes.length <= 0)continue;
					
				
					for(var k=0; k<titlearr.length; k++)
					{
						if(item.nodeName.indexOf(titlearr[k]) != -1)
						{
								showindex = k;
//	if(i == 1)alert("11----------"+showindex+"-------node:------"+item.nodeName+"--------title:-------"+titlearr[showindex]+"----"+item.childNodes.item(0).data);
						}
					}
					//title don't contains the nodeName, get next
					if(showindex == -1) continue;
					
					text = item.childNodes.item(0).data;
//					if(i == 1)alert("22--------------"+showindex+"-------node:------"+item.nodeName+"--------title:-------"+titlearr[showindex]+"----"+text);
					
					if(item.nodeName.toLowerCase().indexOf("previewimageurl") != -1)
					{
						previewimageurl = text;
					}
					else if(item.nodeName.toLowerCase().indexOf("previewactionurl") != -1)
					{
						previewactionurl = text;
					}
					else if(item.nodeName.toLowerCase().indexOf("listenactionurl") != -1)
					{
						htmlarr[showindex] = '<li class="'+item.nodeName.replace('actionurl','')
						+'" ><a href="javascript:popRings(\''+text+'\')" ><span>'+item.nodeName.replace('actionurl','')
						+'</span></a></span></li>';
					//	rows ++;
					}
					else if(item.nodeName.toLowerCase().indexOf("buyactionurl") != -1)
					{
						htmlarr[showindex] = '<li class="'+item.nodeName.replace('actionurl','')
						+'" ><a href="'+text+'"><span>Get It!</span></a></span></li>';
					//	rows ++;
					}
					else if(item.nodeName.toLowerCase() == "price")
					{
						htmlarr[showindex] = '<li class="'+item.nodeName+'"><span>$</span>'+text+'</li>';
					}
					else if(item.nodeName.toLowerCase() == "try")
					{
						if(text != "no")
						{
							htmlarr[showindex] = '<li class="'+item.nodeName
							+'" ><a href="'+text+'" ><span>'+item.nodeName
							+'</span></a></span></li>';
						}
						else
						{
							htmlarr[showindex] = '<li class="'+item.nodeName
							+'" >&nbsp;</span></li>';
						}
					}
					else
					{
						htmlarr[showindex] = '<li class="'+item.nodeName+'">'+text+'</li>';
					//	rows ++;
					}
					
					if(previewimageurl && previewactionurl)
					{
						if(fcgroup == "wallpaper" || fcgroup == "graphic")
						{						
							htmlarr[showindex] = '<li class="preview"><a href="javascript:popGraphics(\''+previewactionurl
							+'\')"><img src='+previewimageurl+' /></a></li>';
						}
						else if(fcId == "game")
						{
							htmlarr[showindex] = '<li class="preview"><a href="javascript:popGame(\''+previewactionurl
							+'\')"><img src='+previewimageurl+' /></a></li>';							
						}
						previewimageurl = previewactionurl = null;
					//	rows ++;
					}	
					//if(rows)alert(html2);				
					
				}
				for(var j=0; j<titlearr.length; j++)
				{
					html2 += htmlarr[j];
				}
				html2 += '</ul></div>';
				
			}
			html2 += '</div>';
		//	alert(pagenoarr);
		//	alert(html2);
			titles.innerHTML = html;
			items.innerHTML = html2;
			fillPageNoList();
		}
	}		
}
function genPageNoList()
{
	
	var n = Math.ceil(totalrows/pagerows);
//	alert(n);
	if(n <= 10)
	{
		for(var i=0; i<n; i++)
		{
			if(pagenoarr)pagenoarr += ",";
			pagenoarr += i+1;
		}
	}
	else
	{
		var begin = 1;
		
		if(curpage > 4)
			begin = curpage -4;
		if(curpage > n-5)
			begin = n - 9;
		
		for(var i=0; i<10; i++)
		{
			if(pagenoarr)pagenoarr += ",";
			pagenoarr += begin+i;
		}
	}
}
function fillPageNoList()
	{
		if(!pagenoarr)return;
		var pagenos = pagenoarr.split(",");
		var html = "";
		html += '<ul class="paginator">';
		if(pagenos[0] != 1)
		{
			html += '<li class="first" "><a href="javascript:gotofirst()">first</a></li>';
			html += '<li class="back" "><a href="javascript:gotoback()">back</a></li>';
			
		}
		for(var i=0; i<pagenos.length; i++)
		{
			if(pagenos[i] == curpage)
				html += '<li class="curpage">'+pagenos[i]+'</li>';
			else
			{
				html += '<li class="otherpage"><a href="javascript:gotopage('+pagenos[i]+')">'+pagenos[i]+'</a></li>';
			}
		}
		if(curpage != Math.ceil(totalrows/pagerows))
		{
			html += '<li class="next"><a href="javascript:gotonext()">next</a></li>';
			html += '<li class="last"><a href="javascript:gotolast()">last</a></li>';
		}
		html += '</ul>';
	//	alert(html);
		document.getElementById("pageno").innerHTML = html;
		pagenoarr = "";
	}
	
	
	
function fcmake(group, id)
{
	curpage = 1;
	fcgroup = group;
	fcId = id;
	var fclist = fcarr.split(",");
	for(var i=0; i<fclist.length; i++)
	{
		document.getElementById(fclist[i]).className = "catStatic";
	}
	document.getElementById(fcId).className = "catActive";
	url = "data/category.xml";
	makeRequest(url, fillSC);
}
function fillSC()
{
	var sc = document.getElementById("scat");
	
	if(http_request.readyState == 4)
	{
		if(http_request.status == 200 || http_request.status == 0)
		{
			var xmlDoc = http_request.responseXML;
			sc.innerHTML = genSCHTML(xmlDoc);
		}
	}
}
function scmake(id)
{
	curpage = 1;
	scId = id;
	initP();
}
function gotofirst()
{
	curpage = 1;
	initP();
}
function gotonext()
{
	curpage ++;
	initP();
}
function gotoback()
{
	curpage --;
	initP();
}
function gotolast()
{
	curpage = Math.ceil(totalrows/pagerows);
	initP();
}
function gotopage(no)
{
	curpage = no;
	initP();
}
