// JavaScript Document
var cards = new Array();
var tagname = 'Card';
var page = 'current';
var records = 8;
var cc_url = '/credit_cards/XMLDB/xml_DB.xml';
var catalog_pages = new Array("cashback.html","1",
									"rewardpoints.html","2",
									"retail_association.html","3",
									"americanexpress.html","4",
									"visa.html","5",
									"mastercard.html","6",
									"hsbcbrand.html","7",
									"orchardbrand.html","8",
									"householdbank.html","17",
									"others.html","9",
									"excellentcredit.html","10",
									"goodcredit.html","11",
									"poorcredit.html","12",
									"displayall.html","13");

	 result_CatID = "";   /* default value */
	 for (var curStr=0;curStr<catalog_pages.length;curStr = curStr + 2) 
	 {
		if (pagePath.toLowerCase().indexOf(catalog_pages[curStr])>-1) {
			result_CatID = catalog_pages[curStr + 1];
		 };
	 }
	 
if (result_CatID !="")
	var category = result_CatID;
else
	var category = 'all';

function init()
{
	document.forms["cardCategory"].reset();
	loadCardsXML();
}

function loadCardsXML()
{
	
	try
	{

		// code for IE

		if (window.ActiveXObject)
		{

		    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		    xmlDoc.async=false;
		    xmlDoc.load(cc_url);
		    getPage(tagname,page,records,'');
		}

		// code for Mozilla, Firefox, Opera, etc.
		else if (document.implementation && document.implementation.createDocument)
		{
			xmlDoc=document.implementation.createDocument("","",null);
			xmlDoc.load(cc_url);		
			xmlDoc.onload= setTimeout("getPage(tagname,page,records,'')",500);
		}

		else
		{
			alert('Your browser cannot handle this script');
		}
	}
	catch (e)
	{
	         try {
			// load xml file
			// code for Safar etc., on Mac & Win
			if (window.XMLHttpRequest ) {
				
				req = new XMLHttpRequest();
				req.onreadystatechange = processReqChange;
				req.open("GET", cc_url, true);
				req.send(null);    
			}
	    	}
                catch (e2) {
			alert(e+':'+e.description+' caught on loadXML');	
		}
	}	
}

function processReqChange()
{
	if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {    
        
        
			if (typeof DOMParser == "undefined") { DOMParser = function (){}
			  DOMParser.prototype.parseFromString = function (str, contentType) {
			    if (typeof ActiveXObject != "undefined") { 
			      var d = new ActiveXObject("MSXML.DomDocument"); 
			      d.loadXML(str); 
			      return d; 
			    } 
			    else if (typeof XMLHttpRequest != "undefined") {
			      var req = new XMLHttpRequest; 
			      req.open("GET", "data:" + (contentType || "application/xml") +  
							 ";charset=utf-8," + encodeURIComponent(str), false); 
			      if (req.overrideMimeType) { 
				req.overrideMimeType(contentType); 
			      } 
			      req.send(null); 
			      return req.responseXML; 
			    } 
			  } 
		        }
		        
			xmlDoc = req.responseXML;
			
			try { 
			       if(!xmlDoc || xmlDoc.childNodes.length==0){ 
			       	    strDoc = req.responseText;
			            xmlDoc = (new DOMParser()).parseFromString(strDoc, "text/xml");
			       } 
			       
			        var strNode = xmlDoc.getElementsByTagName("Card")[0].firstChild.nodeValue; 
			        // alert("responseXML nodeText Result:\n\n" + strNode); 
			    } 
			    catch(e){ 
			        alertError(e,"Error: Not a valid XML document"); 
			    } 

			//var xmlparser = new DOMParser();
			//alert("strDOC="+strDoc);
			//xmldoc = xmlparser.parseFromString(strDoc, "text/xml");
			//xmlDoc = req.responseXML;
			//alert("Processing xmlDOC.");
			getPage(tagname,page,records,'');
         } else {
            alert("There was a problem retrieving the XML data:\n" + req.statusText);
         }
    }	
}

function updatePage(pageindicator)
{
	page = pageindicator;
	getPage(tagname,page,records,'');
}

function compareAll(){
	getPage(tagname,"current",records,"checked");
}

function unCompareAll(){
	getPage(tagname,"current",records,"uncheck");
}

function getPage(tag,pageindicator,recordCount,isChecked)
{	
		tagname = tag;
		page = pageindicator;
		records = recordCount;
		var cardsSelected = document.getElementById('selectCards').value;
		if ((category == 'all')||(category == ''))
		{
			cards=xmlDoc.getElementsByTagName(tagname);
		} 
		else{			
			var allcards = xmlDoc.getElementsByTagName(tagname);
			var j=0;
			for (var i=0; i<allcards.length; i++)
			{
				if (allcards[i].attributes.getNamedItem('catIds'))
				{
					var slctCat = allcards[i].attributes.getNamedItem('catIds').value;
					var catId = "["+category+"]";
					if(slctCat.indexOf(catId)!=-1)
					{					
						cards[j] = allcards[i];					
						j++;
					}
				}
			}
		}
		var cardId;
		var cardName;
		var cardImg;
		var applyUrl;
		var learnUrl;
		var cardBullets = new Array();
		var cardDetail;
		

		var strOutput='';
		var countcards=0;
	
	if(page == "current")
			var pageCount = parseInt(document.getElementById('curentPage').value);
	else if(page == "prev")
			var pageCount = parseInt(document.getElementById('curentPage').value)-1;
	else if(page == "next")
			var pageCount = parseInt(document.getElementById('curentPage').value)+1;
			
	
	var recordCount = records;		
	
	var startRecord = (pageCount-1) * recordCount ;
	var endRecord = parseInt(startRecord) + parseInt(recordCount);	
	
	if(cards.length !=0)
		{	
			if(startRecord < cards.length && startRecord >=0)
			{
				switch (tagname)
				{					
					case 'Card':
						
						for (var countcards=startRecord;(countcards<endRecord) && (countcards<cards.length);countcards++)
						{
							cardId = cards[countcards].attributes.getNamedItem('id').value;
							strOutput += '<div class="cardheader"><h5><input id="chk_card'+countcards+'" name="chk_card'+countcards+'" type="checkbox" value="'+cardId+'" onclick="selectCard(this);"';
							if(isChecked!="" && isChecked!="uncheck"){
								strOutput += ' checked="checked"';
								if(cardsSelected.indexOf('['+cardId+']') == -1 ){
									if(cardsSelected.length>0){
										cardsSelected += ',';
									}
									cardsSelected += '['+cardId+']';
									document.getElementById('selectCards').value=cardsSelected;
								}
							}else if(cardsSelected.indexOf('['+cardId+']') != -1 && pageindicator=="current" && isChecked=="uncheck")	{
								//
								//unchecking of cards done here
								//
								if(cardsSelected.length>3){
									 if(cardsSelected.indexOf('['+cardId+'],')!=-1){
										cardsSelected = cardsSelected.replace(('['+cardId+'],'),'');					
									  }else{
										  cardsSelected = cardsSelected.replace(('['+cardId+']'),'');					
									  }
								}else{
									cardsSelected = cardsSelected.replace(('['+cardId+']'),'');
								}									
								document.getElementById('selectCards').value=cardsSelected;
							}
							if(cardsSelected.indexOf('['+cardId+']') != -1 )	{
								strOutput += ' checked="checked"';								
							}								
							strOutput += '/>'
							
							cardName = cards[countcards].getElementsByTagName("CARDNAME")[0].childNodes[0].nodeValue;
								strOutput += '&nbsp;'+cardName + '</h5></div>';
								// strOutput += cardName + '</h3></div>';
								
								strOutput += '<div class="cardinfo"><div class="column1">';
							applyUrl = cards[countcards].getElementsByTagName("APPLYURL")[0].childNodes[0].nodeValue;
							cardImg = cards[countcards].getElementsByTagName("CARDIMAGE")[0].childNodes[0].nodeValue;
							cardImgAlt=cards[countcards].getElementsByTagName("CARDIMAGE_ALT")[0].childNodes[0].nodeValue;
								strOutput += '	<a href="'+applyUrl +'" target="_blank" style="position:relative;"><img src="'+cardImg+'" alt="'+cardImgAlt+'" border="0"/></a>';				
								
								applyurl_alt=cards[countcards].getElementsByTagName("APPLYURL_ALT")[0].childNodes[0].nodeValue;

								applyurl_img=cards[countcards].getElementsByTagName("APPLY_IMAGE")[0].childNodes[0].nodeValue;
								strOutput += '<a href="'+applyUrl+'" style="position:relative;" target="_blank"><img class="applyBtn" src="'+applyurl_img+'" border="0" alt="'+applyurl_alt+'"/></a>';
								strOutput += '</div>';
							
								strOutput += '<ul class="contentblack">';
							
							paraDetails=cards[countcards].getElementsByTagName("PARA")[0];
							
							if(paraDetails.childNodes.length){
								strOutput += '<p align="left" style="text-align:left;padding-left:10px;">'+paraDetails.childNodes[0].nodeValue+'</p>';
								strOutput += '</ul>';
							}else{
								cardBullets = cards[countcards].getElementsByTagName("LIST")[0].getElementsByTagName("BULLET");
								for (var i=0; i<cardBullets.length; i++)
								{
									strOutput += '<li>'+cardBullets[i].childNodes[0].nodeValue+'</li>';
								}
								strOutput += '</ul>';
								cardDetail = cards[countcards].getElementsByTagName("DETAIL")[0].childNodes[0].nodeValue;
								strOutput += '<div class="contentblack">'+cardDetail+'</div>';
							}
							
							/* Lear More Link Flag to check whether to show or not */
							
							learn_flag=cards[countcards].getElementsByTagName("LEARN_FLAG")[0].childNodes[0].nodeValue;
							if(learn_flag=="Yes")
							{
							learnUrl = cards[countcards].getElementsByTagName("LEARNURL")[0].childNodes[0].nodeValue;
							learnUrl_alt=cards[countcards].getElementsByTagName("LEARNURL_ALT")[0].childNodes[0].nodeValue;
							learnUrl_name=cards[countcards].getElementsByTagName("LEARNURL_NAME")[0].childNodes[0].nodeValue;
								strOutput += '<p class="greenboldlinks"><a href="'+learnUrl+'" target="_blank" title="'+learnUrl_alt+'">&gt;&gt; '+learnUrl_name+'</a></p>'	;
							} 
							
							strOutput += '</div>'; /* PBB - May 13th fix */
							
							/* Learn More Flag Ends Here */
								
							
							
								strOutput +='<div class="float_fix"></div>';
								strOutput += '<div class="tabfoot"><img src="/credit_cards/images/tabfoot_right.gif" alt="" /></div>';
								strOutput +='<div class="float_fix"></div>';
						}
						
					break;			
					default:
						alert("Catalog Item Not Found");
					break;
				}
				document.getElementById("dbOutput").innerHTML=strOutput;	
				document.getElementById('curentPage').value = pageCount;
				var paginationContent = '';
				if(pageCount > 1)
					paginationContent = '<a href="javascript:;" target="_top" onclick="updatePage(\'prev\');">Previous</a> ';
				else
					paginationContent = '<strong style="color:#ccc;visibility:hidden;">Previous </strong>';
					
				paginationContent += 'Page ' + pageCount +" of "+ (Math.ceil(cards.length/recordCount))+' ';
				if(pageCount != (Math.ceil(cards.length/recordCount)))
					paginationContent += '<a href="javascript:;" target="_top" onclick="updatePage(\'next\');">Next</a>';
				else
					paginationContent += '<strong style="color:#ccc;visibility:hidden;">Next</strong>';
				
				document.getElementById('pageCount_top').innerHTML = paginationContent;
				document.getElementById('pageCount_btm').innerHTML = paginationContent;
			}
			else 
			{
				document.getElementById('pageCount_top').innerHTML = "&nbsp;";
				document.getElementById('pageCount_btm').innerHTML = "&nbsp;";
				document.getElementById("dbOutput").innerHTML="<div class='highlight'>Page out of range</div>";
			}
		} else
		{
			document.getElementById("dbOutput").innerHTML="<div class='contentblack'><p>No cards available for this category</p></div>";
		}
		if(isChecked==""){
			window.scrollTo(0,0);
		}
	
	
	// Prepare for sorting
	//sorttable.init();
	//}
//	catch (e)
//	{
//	
//	}	
	
}