locale = "";
layout = "";

ecmID = "";	

catA = new Array();	


k = 0;
p = 0;

numTotalPags = 0;

catAIndex = 0;

newecmID = "";

/****************************************/

/*
categoryArray 
**All subcategories in all rotating modules
ecmID, subCatID, subCatT, subCatF, locale, typeLayout, intervalVal

rangeArray  
** range per Rotating module. EcmID = rotating module has pages from intStart to intFinal. 
Pages are getting retrieved from pagA array that has all pages from all subcategories.
ecmID, intStart, intFinal, Layout

intervalVal
will have the value from the last element from categoryArray 
line 121
*/

byIDArray = new Array();
categoryArray = new Array();

rangeArray = new Array();
randomArray = new Array();

tempCats = new Array();

rIndex = 0;
cntIndex = 0;
tempIndex = 0;

pagA = new Array();	

intervalVal = ""; 

strLang = "";
strViewAll = "";
strNext = "";
strPrev = "";
strReadMore = "";
strViewVideo = "";

function getCategories()
{
	
	//alert("i am in getCategories");
	
	j = 0;
		
	var elements = document.getElementsByTagName('div');
	len = elements.length;
	//alert("number of div: " + len);
	
	for (var i = 0; i < len; i++) 
	{					
		val = elements[i].getAttribute("id");
			
		if (val != null)
		{				
			varFound = val.match("RM_");
			//alert(varFound);
			
			if (varFound != null)
			{
				//alert("i found one");
				valID = val.split("_");
								
				tmp = document.getElementById("RM_" + valID[1]).innerHTML;
				byIDArray[j] = valID[1] + "|_|" + tmp;
				//alert(byIDArray[j]);
				j++;
			}
		}			
	}
	
	intIndex = 0;	
	for (var k = 0; k < byIDArray.length; k++) 
	{					
		//alert("Value of array in position no. " + k + ": " + byIDArray[k]);	
		varValue = byIDArray[k].split("|_|");
		
		varID = varValue[0];
		
		strTemp = varValue[1];
		strTempCats = strTemp.split("||");
		
		for (var cnt = 0; cnt < strTempCats.length - 1; cnt++) 
		{
			//ecmID, subCatID, subCatT, subCatF, locale, typeLayout, intervalVal
			categoryArray[intIndex]= varID + "|" + strTempCats[cnt];		
			intIndex++;
		}
	}
	
	retrievePageInfo();	
}

function retrievePageInfo()
{
	//interval = (intervalVal * 60000);
	
	webURL = window.location.href ;
	x = webURL.split("/");
	
	serverName = x[2];
	//alert(x[2]);
	
	for (var k = 0; k < categoryArray.length; k++) 
	{
		//alert("Final array, position no. " + k + " : " + categoryArray[k]);	
		
		splitArray = categoryArray[k].split("|");
		
		var subCatF = splitArray[3];
		var locale = splitArray[4];
				
		intervalVal = splitArray[6];		
		interval = (intervalVal * 60000);
		
		strLocale = locale.split("_");
		localeVal = strLocale[0] + "-" + strLocale[1];
		strLang = strLocale[0];
		
		openXMLLang();
	
		if( serverName.match(/cmsprd/g) || serverName.match(/uslaxcmsqa/g))
		{
			path = "http://" + serverName + "/iw-cc/Herbalife/GHL3.0/Categorization/" + locale + "/Category/" + subCatF + ".xml";
		}
		else
		{
			path = "http://" + serverName + "/Content/" + localeVal + "/galleryXMLs/Category/" + subCatF + ".xml";			
		}
		//alert(path);	
		
		//RETRIEVING CATEGORIES
		dojo.xhrGet(
		{
	    	url: path,
	    	handleAs: "xml",
	    	handle: function(data,args)
	    	{
				if(typeof data == "error")
				{
			    	console.warn("error!");
			    	console.log(args);
				}
				else
				{						
			 		readXML(data);				    
				}
		    }
		});	
	}	
}

function readXML(data)
{	
	pages = data.getElementsByTagName('page');
	//alert("number of pages in selected category: " + pages.length);
	
	noPags = pages.length;
	
	/*Cats = data.getElementsByTagName('category');	
	strCatID = Cats[0].getAttribute("id");	
	alert("cat id = " + strCatID);	*/	
	
	var splitArray = categoryArray[cntIndex].split("|");			
	newecmID = splitArray[0];	
	prevLayout = splitArray[5];
	//alert("newecmID: " + newecmID);
	
	readPageInfo();

	//alert("value of cntIndex : " + cntIndex);
	
	//alert("value of categoryArray.length : " + categoryArray.length);
	//alert("value of categoryArray.length - 1 : " + (categoryArray.length - 1));
	
	cntIndexTemp = cntIndex + 1;
	
	if(cntIndex == (categoryArray.length - 1))
	//if(cntIndexTemp == (categoryArray.length - 1))
	{
		//alert("end");
		//checkLang();
		//openXMLLang();
		
		createHTML();
	}
	
	cntIndex++;	
}

function readPageInfo()
{
	m = 0;
	//var tempECMID = newecmID
	for (var i = 0; i < noPags; i++) 
	{
		strFeat = pages[i].getAttribute("featured");
		
		if(strFeat == 1)
		{
			strProdID = pages[i].getAttribute("id");
			strProdTitle = pages[i].getAttribute("title");
			strProdSubtitle = pages[i].getAttribute("subtitle");
			strProdImage = pages[i].getAttribute("image");
			strProdImageAlt = pages[i].getAttribute("alt");
			strProdIntro = pages[i].getAttribute("intro");	
			
			strProdContent = pages[i].getAttribute("contentURL");
			strProdVideo = pages[i].getAttribute("videoURL");
			
			pagA[k]= strProdID + "|" + strProdTitle + "|" + strProdSubtitle + "|" + strProdImage + "|" + strProdImageAlt + "|" +
					 strProdIntro + "|" + strProdContent + "|" + strProdVideo;
			//alert(k + ": " + pagA[k]);
			
			k++;
			m++;
		}
	}	
	
	numTotalPags = pagA.length;
	//alert("in readPageInfo: numTotalPags Featured = " + numTotalPags);
	//alert("ECM ID: " + newecmID + " and layout:" + prevLayout);
	
	if (m > 0)
	{
		if (tempIndex == 0)
		{
			newID = newecmID;
			tempID = newecmID;
			tempNoPags = numTotalPags;
			
			intStart = 0;
			intEnd = tempNoPags - 1;
			
			rangeArray[rIndex] = newID + "|" + intStart + "|" + intEnd + "|" + prevLayout;				
		}
		else
		{
			pags2 = tempNoPags;
			
			tempID = newecmID;
			tempNoPags = numTotalPags;
			
			if(newID == tempID)
			{
				intEnd = tempNoPags - 1;
				
				rangeArray[rIndex] = newID + "|" + intStart + "|" + intEnd + "|" + prevLayout;
			}
			else
			{
				newID = tempID;
				
				intStart = pags2;				
				intEnd = tempNoPags - 1;
				
				rIndex++;
				rangeArray[rIndex] = newID + "|" + intStart + "|" + intEnd + "|" + prevLayout;
			}			
			
		}
		//alert("rangeArray in position no. " + rIndex + " is: " + rangeArray[rIndex]);
		get_random(intStart, intEnd, rIndex);
		
		tempIndex++;
	}
	
}

function createHTML()
{
	//alert("i am in createHTML");
	//alert(p);
	for (var j = 0; j < randomArray.length; j++) 
	{
		p = randomArray[j];
		
		var tempArr = rangeArray[j].split("|");
		var strID = tempArr[0];
		var strLy = tempArr[3];
		
		var temp = pagA[p];
		//alert(temp);
		pageContent = temp.split("|");
		
		//strPagID = pageContent[0];
		strPagTitle = pageContent[1];
		strPagSubtitle = pageContent[2];
		strPagImage = pageContent[3];
		strPagImgAlt = pageContent[4];
		strPagIntro = pageContent[5];
		strPagContent = pageContent[6];		
		strPagVideo = pageContent[7];
		
		//Validations for image
		if (strPagImage == "")
		{
			strImagePath = "/Content/Global/img/layout/pix.gif";
			strImageAlt = "";
		}
		else
		{
			strImagePath = strPagImage;
			strImageAlt = strPagImgAlt;
		}
		
		//IMAGE
		strImgHTML = "<div class=\'module_img_crop\'><img class=\'module_rotating_img\' src=\'" + strImagePath + "\' alt=\'" + strImageAlt + "\' align=\'left\'/></div>";
		//alert(strImgHTML);
		
		document.getElementById("IMG_ROTATING_MODULE_" + strID).innerHTML = strImgHTML;
		
		//INTRO
		document.getElementById("INTRO_TEXT_" + strID).innerHTML = strPagIntro;	
		
		if (strLy == '1')
		{
			//TITLE
			document.getElementById("TIT_ROTATING_MODULE_" + strID).innerHTML = strPagTitle;
					
			//SUBTITLE
			strSubtitHTML = "<h2 class=\'module_subtitle nopadding\'>" + strPagSubtitle + "</h2>";
			
			document.getElementById("SUBTIT_ROTATING_MODULE_" + strID).innerHTML = strSubtitHTML;		
		}
		else
		{
			
			//TITLE AND SUBTITLE
			strTitHTML = "<h2 class=\'module_subtitle nopadding\'>" + strPagTitle + "</h2>" + 
						"<h5 class=\'nopadding\'>" + strPagSubtitle + "</h5>";						
			//alert(strImgHTML);
			
			document.getElementById("TIT_ROTATING_MODULE_" + strID).innerHTML = strTitHTML;		
		}	
		
		//CONTENT LINK
		if (strPagContent != "")
		{				
			strContHTML = "<a href=\'" + strPagContent + "\' style=\'text-decoration:none\'>" + 
						 strReadMore + " <img src=\'/Content/Global/img/layout/icon_arrow.gif\' /></a>";
		}
		else
		{
			strContHTML = "";
		}
		document.getElementById("CONTENT_LINK_" + strID).innerHTML = strContHTML;
		
		//VIDEO LINK
		if (strPagVideo != "")
		{				
			strVidHTML = "<a href=\'" + strPagVideo + "\' style=\'text-decoration:none\'>" + 
						  strViewVideo + " <img src=\'/Content/Global/img/layout/icon_video.gif\' /></a>";
		}
		else
		{
			strVidHTML = "";
		}			
		document.getElementById("VIDEO_LINK_" + strID).innerHTML = strVidHTML;
		
	}
		
	for (var ind = 0; ind < rangeArray.length; ind++) 
	{
		var tempA = rangeArray[ind].split("|");
		
		var st = parseInt(tempA[1]);
		var en = parseInt(tempA[2]);		
		//alert("values passed again:" + st + "," + en);
		
		get_random(st, en, ind);
	}
	
	//alert("value of interval: " + intervalVal);
	//p = get_random();
	//alert("random: " + p);
	setTimeout("createHTML()",interval);				
	
}

function get_random(intSt, intEn, intIn)
{	
	if (intSt == 0)
	{		
		randomArray[intIn] = Math.floor(Math.random()* (intEn + 1));	
		//alert("value of random: " + randomArray[intIn]);		
	}
	else
	{
		var lowerVal = intSt - 1;
		
		randomArray[intIn] = Math.floor((intEn - lowerVal)*Math.random()) + intSt;
	}
	//alert("random no. in position " + intIn + " is : " + randomArray[intIn]);
	
    //var ranNum= Math.floor(Math.random()* numTotalPags);
    return;
}

function openXMLLang()
{	
	path = "http://" + serverName + "/Content/Global/xml/LangTerms.xml";
	//alert(path);
	
	//RETRIEVING LANGUAGES
	dojo.xhrGet(
	{
    	url: path,
    	handleAs: "xml",
    	handle: function(data,args)
    	{
			if(typeof data == "error")
			{
	    		console.warn("error!");
	    		console.log(args);
			}
			else
			{		    			  
				retrieveTerms(data);	    
			}
    	}
	});	
		
}

function retrieveTerms(data)
{
	//alert("i am in retrieveTerms");
	
	nodeLang = data.getElementsByTagName('language');
	numNodes = nodeLang.length;	
	//alert("number of nodes: " + numNodes);
	
	for (var i = 0; i < numNodes; i++) 
	{  
		//alert("value of i = " + i);
						
		lang = nodeLang[i].getAttribute("id");
		
		if (strLang == lang)
		{
			var va = nodeLang[i].getElementsByTagName("view_all");			
			strViewAll = va[0].childNodes[0].nodeValue;
			//alert("Value of view all: " + strViewAll);
			
			var va = nodeLang[i].getElementsByTagName("next");						
			strNext = va[0].childNodes[0].nodeValue;
			//alert("Value of next: " + strNext);
			
			var va = nodeLang[i].getElementsByTagName("previous");
			strPrev = va[0].childNodes[0].nodeValue;
			//alert("Value of prev: " + strPrev);	
			
			var va = nodeLang[i].getElementsByTagName("read_more");
			strReadMore = va[0].childNodes[0].nodeValue;
			//alert("Value of strReadMore: " + strReadMore);
			
			var va = nodeLang[i].getElementsByTagName("view_video");
			strViewVideo = va[0].childNodes[0].nodeValue;
			//alert("Value of strViewVideo: " + strViewVideo);			

			break;
		}
		
	}
}
