// Copyright 2004 DP Information Network Pte Ltd. All Rights Reserved.
var VALID_NUMBERS = "0123456789" ;

function GoPdtCatalogue(){
	if (parent.main!=null){		
		if (top!=null)
			parent.main.location.href="/pdtInfo.asp?sid="+top.strSessionID;
		else
			parent.main.location.href="/pdtInfo.asp";	
	}	
}//GoPdtCatalogue

//START: JR 3322 By Nirenj 02-04-09
//Function to abstract getElementById for all browsers
function getElementById(aID){ 
	var element = null; 
	if (document.getElementById) 
		element = document.getElementById(aID);
	else if (document.layers) 
		element = document.layers[aID];
	else if (document.all) 
		element = document.all[aID];
	return element; 
}//END
//START: JR 3322 By Nirenj 02-04-09
//Function to cater InnerText for FF & IE, bcos FF does not support innerText
function getObjInnerText(obj,tt) {
	if (obj.innerText) { // IE;
		return obj.innerText=tt;
	}
	else{
		if (obj.textContent) {
			return obj.textContent=tt;
		}
	}
}//END
//START:JR 3322 By Nirenj 09-01-09
function Und(widget) {
document.getElementById(widget).style.textDecoration="Underline";
}
//START:JR 3322 By Nirenj 09-01-09
function NoUnd(widget) {
document.getElementById(widget).style.textDecoration="None";
}
//END:JR 3322 By Nirenj 09-01-09

//SzeSeng JR3464 20090305
function getAjaxResult(url) {
  if (window.XMLHttpRequest) {              
    AJAX=new XMLHttpRequest();              
  } else {                                  
    AJAX=new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (AJAX) {
     AJAX.open("GET", url, false);                             
     AJAX.send(null);
     return AJAX.responseText;                                         
  } else {
     return false;
  }                                             
}
//SzeSeng JR3464 20090305

//SzeSeng JR3306 20081201
function RemoveEnterKey(replaceText,replaceWith){
	var tmpResult = escape(replaceText);
	
	for (i=0 ; i< replaceText.length ; i++){
		if (tmpResult.indexOf("%0D%0A") > -1){
			tmpResult=tmpResult.replace("%0D%0A",replaceWith)
		}
		else if (tmpResult.indexOf("%0A") > -1){
			tmpResult=tmpResult.replace("%0A",replaceWith)
		}
		else if (tmpResult.indexOf("%0D") > -1){
			tmpResult=tmpResult.replace("%0D",replaceWith)
		}
	}
	return unescape(tmpResult);
}
//SzeSeng JR3306 20081201

function isValidEmailAdd(strAccount){
	var i = 0;
	var nCount = 0;
	var nDotCount = 0;
	var cChar;
	for (i=0 ; i< strAccount.length ; i++){
		cChar = strAccount.charAt(i);		
		if (cChar == '@'){
			nCount ++;
		}else if (nDotCount == 0 && cChar == '.'){
			nCount ++;
			nDotCount = 1;
		}else if (cChar==' ' || cChar=='[' || cChar==']' || cChar=='{' || cChar=='}' || cChar==':' || cChar==';' || cChar=='<' || cChar=='>' || cChar=='?' || cChar=='/' || cChar=='\\' || cChar==','){
			return false;
		}
	}
	if(nCount >=2) return true;	
	return false;
	
}//isValidEmail


function getStr(pPdtCode,sRefNo,sRefDesc,sITRemark,sFileRef,sUserRem){
	var aMessage = new Array(2);
	
	//display
	aMessage[0]= FixLen(pPdtCode,8) + sRefNo + " " + sRefDesc;
	
	//JR4550 SaiZaw 20100804
	 if (pPdtCode=="WMSAV")
	 {
	   var rptDate;
	   var str=sUserRem.split("|");
	   var dRefDesc;
	   rptDate=str[0];	
       if(sRefDesc.length>37){
           dRefDesc=trim(sRefDesc);
       }else{ 	   
	    dRefDesc=trim(sRefDesc)+ "(Created On:" + rptDate +")";
	   }
	   aMessage[0]= FixLen(pPdtCode,8) + sRefNo + " " + dRefDesc ;
	 }
	//End JR4550
	/*if (sITRemark!=null && sITRemark.length > 0)	
		aMessage[0] += " (" + sITRemark + ") " + sUserRem;	*/
	 
	//value
	//SzeSeng JR3306 20081201
	//aMessage[1]=FixLen(pPdtCode,8) + FixLen(sRefNo,20)+ FixLen(sRefDesc,120) + FixLen(sITRemark,100) + FixLen(sFileRef,40) + FixLen(sUserRem,255); 
	//alert(sUserRem.charCodeAt());
	//alert(RemoveEnterKey(sUserRem," "));
	//SzeSeng JR3304 20081216
	//aMessage[1]=FixLen(pPdtCode,8) + FixLen(sRefNo,20)+ FixLen(sRefDesc,120) + FixLen(sITRemark,100) + FixLen(sFileRef,40) + FixLen(RemoveEnterKey(sUserRem," "),500).substr(0,500); 
	aMessage[1]=FixLen(pPdtCode,8) + FixLen(sRefNo,20)+ FixLen(sRefDesc,120) + FixLen(sITRemark,200) + FixLen(sFileRef,40) + FixLen(RemoveEnterKey(sUserRem," "),500).substr(0,500); 
	//SzeSeng JR3304 20081216
	//SzeSeng JR3306 20081201
	return aMessage;
}//getStr

function isAllDigit(string) {
    if (!string) return false;   

    for (var i = 0; i < string.length; i++) {
       if (VALID_NUMBERS.indexOf(string.charAt(i)) == -1)
          return false;
    }
    return true;
}

function trimEx(strText) { 
		if (strText==null || strText=="" ){
			return "" ;
		}
	  // this will get rid of leading spaces 
    while ( (strText.substring(0,1) == ' ') || (strText.charCodeAt(0) == 160 ) ) {
        strText = strText.substring(1, strText.length);
    } 

    // this will get rid of trailing spaces 
    while ( (strText.substring(strText.length-1,strText.length) == ' ') || (strText.charCodeAt(strText.length-1) == 160) ) {
        strText = strText.substring(0, strText.length-1);   
    }
    return strText;
} 

function selectListByVal(sourceList,sVal) {	
	if(sourceList==null) return;
	var n=sourceList.length;
	for (var i=0; i < n; i++) {			
		if ((sourceList.options[i]!= null) && (sourceList.options[i].value==sVal)){
			sourceList.options[i].selected = true;
			return true;
		}
	}//for	
}//selectListByVal


function selectList(sourceList) {	
	var n=sourceList.length;	
	for (var i=0; i < n; i++) {	
		if (sourceList.options[i]!= null)
			sourceList.options[i].selected = true;
	}
	return true;
}

function getSelectedValue(sourceList) {
	if(sourceList==null)return "";
	var n=sourceList.length;	
	var sValue="";
	for (var i=0; i < n; i++) {	
		if (sourceList.options[i]!= null){
			if(sourceList.options[i].selected == true){
				sValue = sourceList.options[i].value;
				break;
			}
		}
	}//for
	return sValue;
}//getSelectedValue

function ListBox_DelSelectedItem(ListBox){
	var stext="";
	if	(ListBox.selectedIndex >=0 ) {
		for (var i=0; i<ListBox.length; i++){
			stext=ListBox.options[i].value;
			if (ListBox.options[i].selected){
				if (top.strPaymentScheme != "TRM")
					deleteCookie(trimEx(stext.substr(0,8)),ListBox,false);
				ListBox.remove(i);
				i--;
			}
		}
		
		for(var i=0; i<ListBox.length; i++){
			stext=ListBox.options[i].value;
			if (top.strPaymentScheme != "TRM")
				setCookies(trimEx(stext.substr(0,8)),ListBox);
		}
	}
}


function AddFLHItemByBatch(ListBox,TextLine,pProductCode,pFileRef,pRemark ){
	var IsAddSuccess = false;
	var sRefNo="";
	var sRefDesc="";
	var iAvail =0;
	var sAvail = "";
	var sLatFinDate ="";
	var sTmp="";
	var sDesc="";
	var sVal = ""
	if (TextLine != "" && TextLine != null && TextLine !="	" ) {
		var aItem = TextLine.split(",")	// array of selected order items
		for (var i = 0; i < aItem.length -1; i++) { 
			sTmp=aItem[i];
			sVal = sTmp;			
			var aOrder = sTmp.split("|");
			
			if (aOrder.length >=4){
				sRefNo= trimEx(aOrder[0]); //Reg No
				sLatFinDate = trimEx(aOrder[1]); //Latest financial date 03/2004
				sAvail = aOrder[2]; //Availability
				iAvail = sAvail - 0;//0-NotAvail 1-Available
				sRefDesc= trimEx(aOrder[3]); //Company Name
				
				if (sRefNo!= "" && sRefDesc !=""){
					if(iAvail==1) {					
						sDesc=FixLen(pProductCode,7) + FixLen(sRefNo,12)+ FixLen(sLatFinDate,14) + FixLen(sRefDesc,121) + FixLen(pRemark,101) + FixLen(pFileRef,40); 
											
						sVal = pProductCode + "|" + sRefNo + "|" + sLatFinDate + "|" + iAvail + "|" + sRefDesc + " | " + pRemark + " | " + pFileRef;
						if (ListBox_AddItemEx(ListBox,sDesc,sVal)==true) {
							IsAddSuccess = true;
						}	
					}else{
						alert("The selected Entity/Company is not added. There is no report available to purchase.");
					}//Not available
				}//Check on refno and refdesc
			}//IF : check on order item line w
		}//FOR
		delete aItem;			// delete the array object
		return IsAddSuccess
	}	
}//END AddFLHItemByBatch

//listbox,display content,real content
function ListBox_AddItemEx(listbox,itemValue,itemDesc,pPdtCode) {
	if(itemValue ==null ||itemDesc==null){
		return false;
	}else{
		if(itemValue.length < 1 || itemDesc.length < 1){	
			return false;
		}
	}//check null
			
	if (listbox.length > 100) {
		alert("search items exceeded maximum limit");
		return false;
	}
	
	// Is Item Exists in the list box
	if (pPdtCode=="C100DPSW"){ //CMS		
		for (var i=0; i < listbox.length; i++){				
			if (listbox.options[i].value.substring(0,100) == itemValue.substring(0,100))return false;
		}//for		
	}else{
		for (var i=0; i < listbox.length; i++){				
			if (listbox.options[i].value == itemValue)	return false;
		}//for
	}//else
	
	var sPayScheme=top.strPaymentScheme;
	
	if (sPayScheme == "PTS") {
		var pdt_Id; var IsNormalPack;
		var sPackagePrice=0;
		pdt_Id=top.GetPdtId(trimEx(pPdtCode));
		IsNormalPack=top.IsNormalPack;
		
		if (sPayScheme == "TRM"){
			//Hide Standard and Discounted Price
		}
		else if (IsNormalPack==1) {
			//Show Standard Price
			sPackagePrice = top.GetPrice(pdt_Id) + top.GetCom(pdt_Id);
		}
		else{
			//Show Discounted Price
			sPackagePrice = top.GetPackPrice(pdt_Id) + top.GetPackCom(pdt_Id);
		}
		itemDesc = FixLen(itemDesc.substr(0,82),82) + FixLenFront(sPackagePrice.toFixed(2),8);
	}
	else
		itemDesc = FixLen(itemDesc.substr(0,82),82);
		
	var n = listbox.length;
	var myoption = new Option(itemDesc, itemValue);
	listbox.options[n]=myoption;
	delete myoption;
	return true;
}

function GetSelectedOptionText(list_box) {
  if (list_box.selectedIndex == null) {
		return;
  }
	var n=list_box.selectedIndex;
	if (n >= 0) {
		return list_box.options[n].text; 
	}	
}

function ListBox_AddItem(listbox,itemD,itemV,pPdtCode){  //itemD-For Display, itemV-For Value

	if (itemV == "" || itemV == null){
		return false;
	}
	//SzeSeng JR3306 20081201
	//var sUserRemark=trimEx(itemV.substr(288,255));
	var sUserRemark=trimEx(itemV.substr(288,500));
	//SzeSeng JR3306 20081201
	
	if (sUserRemark == ""){
		//SzeSeng JR3306 20081201
		//itemD = itemD + FixLen("",255);
		//itemV = itemV + FixLen("",255);
		itemD = itemD + FixLen("",500);
		itemV = itemV + FixLen("",500);
		//SzeSeng JR3306 20081201
	}
	
	if (listbox.length > 100) {
		alert("search items exceeded maximum limit!");
		return false;
	}
	
	// Is Item Exists in the list box
	for (var i=0; i < listbox.length; i++){
		if (listbox.options[i].value == itemV){			
		    return false;
		}
	}
	
	var sPayScheme=top.strPaymentScheme;
	if (sPayScheme == "PTS"){
		var pdt_Id;var IsNormalPack;
		var sPackagePrice=0;

		pdt_Id=top.GetPdtId(trimEx(pPdtCode));
		IsNormalPack=top.IsNormalPack;
			
		if (sPayScheme == "TRM"){
			//Hide Standard and Discounted Price
		}
		else if ((sPayScheme == "COD" || sPayScheme == "PTS") && IsNormalPack==1){
			//Show Standard Price
			sPackagePrice = top.GetPrice(pdt_Id) + top.GetCom(pdt_Id);
		}
		else if (sPayScheme == "PTS") {
			//Show Discounted Price
			sPackagePrice = top.GetPackPrice(pdt_Id) + top.GetPackCom(pdt_Id);
		}
		else {
			alert("Exception Occurred.")
		}
				
		itemD = FixLen(itemD.substr(0,78),80) + FixLenFront(sPackagePrice.toFixed(2),8);
	}
	else
		itemD = FixLen(itemD.substr(0,78),80);
	var n = listbox.length;
	var myoption = new Option(itemD, itemV);
	listbox.options[n]=myoption;
	delete myoption;
	return true;
}

function outputMoney(number) {
    return outputDollars(Math.floor(number-0) + '') + outputCents(number - 0);
}

function outputDollars(number) {
    if (number.length <= 3)
        return (number == '' ? '0' : number);
    else {
        var mod = number.length%3;
        var output = (mod == 0 ? '' : (number.substring(0,mod)));
        for (i=0 ; i < Math.floor(number.length/3) ; i++) {
            if ((mod ==0) && (i ==0))
                output+= number.substring(mod+3*i,mod+3*i+3);
            else
                output+= ',' + number.substring(mod+3*i,mod+3*i+3);
        }
        return (output);
    }
}

function outputCents(amount) {
    amount = Math.round( ( (amount) - Math.floor(amount) ) *100);
    return (amount < 10 ? '.0' + amount : '.' + amount);
}


function initForm(pFrm){	
	document.forms[pFrm].txtSessionID.value=top.strSessionID;
	document.forms[pFrm].txtUserID.value=top.strUserID;
	document.forms[pFrm].txtPackageProfile.value=top.intPackageProfile;
}

function openDialogIE(pURL) {
	var today = new Date();
	var frmName=today.getHours()+ today.getMinutes() + today.getSeconds()
	delete today;
	var sFeatures= "dialogWidth=600px;dialogHeight=500px;scrollbars=no;center=yes;border=thin;help=no;status=no";	
	var retValue=window.showModalDialog(pURL,frmName,sFeatures);
	return retValue;
}

function openDialogEx(pURL, pwidth, pheight) {
	var today = new Date();
	var frmName="mydialog";
	var sFeatures= "dialogWidth=" + pwidth + "px;dialogHeight=" + pheight + "px;scrollbars=no;center=yes;border=thin;help=no;status=no";	
	var retValue=window.showModalDialog(pURL,frmName,sFeatures);
	return retValue;
}

function openWinEx(pURL, pwidth, pheight) {
	var today = new Date();
	var frmName="mydialog";
	var sFeatures= "dialogWidth=" + pwidth + "px;dialogHeight=" + pheight + "px;scrollbars=no;center=yes;border=thin;help=no;status=no";	
	//window.opener(pURL,frmName,sFeatures);
	window.opener(pURL);
	//return retValue;
}

function AddOrderItemByBatch(ListBox,TextLine,pProductCode,pFileRef,pRemark ){
	var IsAddSuccess = false;
	var sRefNo=""; var sRefDesc="";
	var sTmp="";var stext="";var sUserRemark="";
	
	if (TextLine != "" && TextLine != null && TextLine !="	" ) {
		var aItem = TextLine.split(",")	// array of selected order items
			for (var i = 0; i < aItem.length -1; i++) { 
				sTmp=aItem[i]
				if (pProductCode == "CBSI" || pProductCode == "CBSC" || pProductCode=="ECBI") {
				    sRefNo= sTmp.substring(0,14);
				    sRefDesc= sTmp.substring(16,90);
				//IR1117 SzeSeng 20091023
				//} else if (pProductCode == "EIS" || pProductCode == "PLIT") {
				} else if (pProductCode == "EIS" || pProductCode == "PLIT" || pProductCode == "IBS" || pProductCode == "IBSG" || pProductCode == "TIC") {
				//IR1117 SzeSeng 20091023
				    sRefNo= sTmp.substr(0,15);
				    sRefDesc= sTmp.substr(16,90);
				    sRefNo=trimEx(sRefNo);
				    
				}else if(pProductCode == "SGPFLH"){
					sRefNo= sTmp.substr(0,10);
					sRefDesc= sTmp.substr(10,90);
					
				}else {
				    sRefNo= sTmp.substring(0,10);
				    sRefDesc= sTmp.substring(11,90);
				}

				sRefNo=trimEx(sRefNo);
				sRefDesc=trimEx(sRefDesc);
				
				if (sRefNo!= "" && sRefDesc !="") {
					//if(pProductCode == "SGPFLH"){
					//	stext=FixLen(pProductCode,7) + FixLen(sRefNo,11)+ FixLen(sRefDesc,121) + FixLen(pRemark,101) + FixLen(pFileRef,40); 
					//}else{
						//SzeSeng JR3306 20081201
						//stext=FixLen(pProductCode,8) + FixLen(sRefNo,20)+ FixLen(sRefDesc,120) + FixLen(pRemark,100) + FixLen(pFileRef,40) + FixLen(sUserRemark,255); 
						//SzeSeng JR3304 20081216
						//stext=FixLen(pProductCode,8) + FixLen(sRefNo,20)+ FixLen(sRefDesc,120) + FixLen(pRemark,100) + FixLen(pFileRef,40) + FixLen(sUserRemark,500).substr(0,500); 
						stext=FixLen(pProductCode,8) + FixLen(sRefNo,20)+ FixLen(sRefDesc,120) + FixLen(pRemark,200) + FixLen(pFileRef,40) + FixLen(sUserRemark,500).substr(0,500); 
						//SzeSeng JR3304 20081216
						//SzeSeng JR3306 20081201
					//}
					
					if (ListBox_AddItem(ListBox,stext,stext,pProductCode)==true) {
						IsAddSuccess = true;
				}	}
			}
		delete aItem;			// delete the array object
	}	
	return IsAddSuccess
}

function trim(strValue) {
	return trimEx(strValue);
}

function FixLen(strWord, intLength){
	var strDif=0;
	if (strWord==null || strWord=="") {
		strDif=intLength;
		strWord="";
	} else {
		strDif= intLength - strWord.length;
	}

	if (strDif > 0) {
			for (var i=0; i<strDif;i++) {
				strWord=strWord +  "\040" ;	// "\040" means &nbsp;
			}
	}
	return strWord;
}

function FixLenFront(strWord, intLength){
	if (strWord==null) {strWord=""}
	var strDif= intLength - strWord.length ;
	if (strDif > 0) {
		for (var i=0; i<strDif;i++){                           
			strWord="\040" + strWord;
		}
	}
		return strWord;
}

function getSelectedOption( optSrc ) {	
	for (var i=0; i < optSrc.length; i++){		
	    if  (optSrc[i].checked){		
		  return optSrc[i].value;
		}
	}
}

function SelectOption(optSrc,index){
	if (optSrc.length >=index){
		optSrc[index].checked=true;
	}	
}

function DisableObject(objSrc,bFlag){
	objSrc.disabled=bFlag;
}

function DisableObjectEx(ObjId, bFlag) {
	var oMyObj=document.getElementById(ObjId);
	oMyObj.disabled=bFlag;
}

function IsValidAddress(pFrm){
	var sBlk_House=pFrm.txtBlk_House.value;
	var sSt_Name=pFrm.txtSt_Name.value;
	var sPostal=pFrm.txtPostal.value; 
	var sFloor=pFrm.txtFloor.value; 
	var sUnit=pFrm.txtUnit.value; 
	
	if (sBlk_House =="" || sSt_Name=="" || sPostal == ""){
		return false;
	}
	if (sPostal.length != 6 || sPostal == "000000" || isNaN(sPostal) ) {
		return false;
	}
	if ((sFloor != "" && sUnit == "") || (sFloor == "" && sUnit != "")) {
		return false;
	}
	if (sFloor != "" ) {
	 if (isNaN(sFloor)) {
		return false;
		}
	}
	return true;
}

function convertToUpper(field) {
	field.value = field.value.toUpperCase() ;
}

function findAddress(pFrm, sSessionID, sSt_Name, sPostal){
	if ((sSt_Name.length >= 6) || (sPostal != null)){	
		switch (event.keyCode) {
		case 13 :	
			if (sSt_Name != "" || sPostal !="") {
				openDialog(pFrm,'12',sSessionID, FixLen(sSt_Name,50) + FixLen(sPostal,6));	
			}
			break;
		case 27 :	
			cmdClear_onClick(pFrm);
			break;
		default:
			return true;
		}
	}
}

function GetURLFriendlyStr(stext){
	if (stext!="" && stext!=null){
	//Updated by Nirenj on 15-07-08, 04-08-08 by adding "/g" to do a global search for the specif escape character for replacing.
		stext = stext.replace(/\//g,"%2F")
		stext = stext.replace(/\?/g,"%3F")
		stext = stext.replace(/\+/g,"%2b")
		stext = stext.replace(/\,/g,"%2C")
		stext = stext.replace(/\./g,"%2E")
		stext = stext.replace(/\'/g,"%27")
		stext = stext.replace(/=/g,"%3D")
		stext = stext.replace(/&/g,"%26")
		stext = stext.replace(/@/g,"%40")
		stext = stext.replace(/\ /g,"%20")
	}
	return stext;
}
/*
function HTMLEncode(strHTML)
{
	var div = document.createElement('div');
	div.innerText = strHTML;
	return div.innerHTML;
}

function HTMLDecode(strEncodeHTML)
{
	var div = document.createElement('div');
	div.innerHTML = strEncodeHTML;
	return div.innerText;
}
*/
function DisplayObject(pObject,bFlag){
	var oMyObj=document.getElementById(pObject)
	if(oMyObj==null)return;
	if (bFlag)
		oMyObj.style.display=""
	else
		oMyObj.style.display="none"
}


function daysElapsed(date1,date2) {
    var difference =
        Date.UTC(y2k(date1.getYear()),date1.getMonth(),date1.getDate(),0,0,0)
      - Date.UTC(y2k(date2.getYear()),date2.getMonth(),date2.getDate(),0,0,0);
    return difference/1000/60/60/24;
}

function y2k(number) { return (number < 1000) ? number + 1900 : number; }

function getparentsid() {
	var mysid;
	if (self.opener) {
		mysid=self.opener.top.strSessionID;
	} else if (top.strSessionID) {
		mysid=top.strSessionID;
	} else {
		alert("session id is missing");
		return
	}
	return mysid;
}

function showsample(pcode,packagecode,PdtID) {
    //SM May 02, 2007 - disable the sample (only for polytechnics)   
    /*alert('Samples are not available \n Please contact our customer service at 6738 1900');
    return;*/
   	if (packagecode == 'NORM' || packagecode == 'DMST'){
		sURL="/ReqProductSamples.asp?PdtId=" + PdtID + "&sid=" + top.strSessionID;
		parent.main.location.href= sURL;	
	}else{    
	    var attr="left=20px,top=10px,resizable=yes,width=700px,height=480px,toolbar=0,menubar=1,status=1,directories=1,scrollbars=1";
	    var myurl="/dosample.asp?code=" + pcode + "&sid=" + top.strSessionID;
	    window.open(myurl,"QuestNet_Sample",attr);
  }
}

function create_TotalPrice(oTable,ListBox) {
	var packageTotalPrice=0;
	var sItem="";
	
	for (var i=0; i<ListBox.length; i++){	
		sItem=ListBox.options[i].text;
		packageTotalPrice=packageTotalPrice+parseFloat(trimEx(sItem.substr(80,10)));
	}
		
	if (isNaN(packageTotalPrice) || packageTotalPrice == 0)
		oTable.rows[0].cells[0].innerHTML = " ";
	else
		oTable.rows[0].cells[0].innerHTML = "Total: $" + packageTotalPrice.toFixed(2);
		
	oTable.rows[0].cells[0].className='dptxtorangebold1';
}

function setCookies(pCookieName,listbox) {
	var expdate = new Date();
	expdate.setTime(expdate.getTime()+(1*24*60*60*1000)); // 1 day
	var the_cookie = pCookieName + "=";
	var arr_Tmp = new Array();
	var sProductCode,sRefNo,sRefDesc,sRemarks,sFileRef,sUserRemark;
	var count = 0;

	for (var i=0; i<listbox.length; i++){
		sTmp = listbox.options[i].value;
		
		sProductCode = trimEx(sTmp.substr(0,8));
		sRefNo = trimEx(sTmp.substr(8,20));
		sRefDesc = trimEx(sTmp.substr(28,120));
		//SzeSeng JR3304 20081216
		//sRemark = trimEx(sTmp.substr(148,100));
		sRemark = trimEx(sTmp.substr(148,200));
		//SzeSeng JR3304 20081216
		//SzeSeng JR3304 20081216
		//sFileRef = trimEx(sTmp.substr(248,40));
		sFileRef = trimEx(sTmp.substr(348,40));
		//SzeSeng JR3304 20081216
		//SzeSeng JR3304 20081216
		//SzeSeng JR3306 20081201
		//sUserRemark = trimEx(sTmp.substr(288,255));
		//sUserRemark = trimEx(sTmp.substr(288,500));
		sUserRemark = trimEx(sTmp.substr(388,500));
		//SzeSeng JR3306 20081201
		//SzeSeng JR3304 20081216
		if (pCookieName == sProductCode){
			arr_Tmp[count] = escape(sProductCode) + "~" + escape(sRefNo) + "~" + escape(sRefDesc) + "~" + escape(sRemark) + "~" + escape(sFileRef) + "~" + escape(sUserRemark);
			count += 1;
		}
	}
	
	if (arr_Tmp.length > 0 )
		the_cookie = the_cookie + arr_Tmp;
			
	document.cookie = the_cookie;
	
}

function getCookies(pCookieName) {
	var cookieString=document.cookie;
	if (cookieString == "")
		return "";
	var index1=cookieString.indexOf(pCookieName+"=");
	if (index1==-1 || pCookieName=="") 
		return "";		
		
	var index2=cookieString.indexOf(';',index1);
	if (index2==-1) 
		index2=cookieString.length;
		
	return unescape(cookieString.substring(index1+pCookieName.length+1,index2));	
}

function deleteAllCookie() {
	for (var i=1; i<=top.MAX_PDT_ITEM; i++){
		if (top.gpdtco[i] != '' || top.gpdtco[i] != null)
			deleteCookie(trimEx(top.gpdtco[i]),"",false);
	}
}

function deleteCookie (pCookieName,listbox,bSetCookie) {
  var cookie_date = new Date ();  // current date & time
  cookie_date.setTime ( cookie_date.getTime() - 1 );
  document.cookie = pCookieName + "=; expires=" + cookie_date.toGMTString();
  
  if (bSetCookie)
	setCookies(pCookieName,listbox);
}


/////////////////////DO NOT REMOVE THE BELOW CODE //////////////////////////////// NIRENJ
// insertAdjacentHTML(), insertAdjacentText() and insertAdjacentElement()
// for Netscape 6/Mozilla by Thor Larholm me@jscript.dk
// Usage: include this code segment at the beginning of your document
// before any other Javascript contents.
if(typeof HTMLElement!="undefined" && !HTMLElement.prototype.insertAdjacentElement){
	HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode)
	{
		switch (where){
		case 'beforeBegin':
			this.parentNode.insertBefore(parsedNode,this)
			break;
		case 'afterBegin':
			this.insertBefore(parsedNode,this.firstChild);
			break;
		case 'beforeEnd':
			this.appendChild(parsedNode);
			break;
		case 'afterEnd':
			if (this.nextSibling) this.parentNode.insertBefore(parsedNode,this.nextSibling);
			else this.parentNode.appendChild(parsedNode);
			break;
		}
	}

	HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr)
	{
		var r = this.ownerDocument.createRange();
		r.setStartBefore(this);
		var parsedHTML = r.createContextualFragment(htmlStr);
		this.insertAdjacentElement(where,parsedHTML)
	}

	HTMLElement.prototype.insertAdjacentText = function(where,txtStr)
	{
		var parsedText = document.createTextNode(txtStr)
		this.insertAdjacentElement(where,parsedText)
	}
}
/////////////////////DO NOT REMOVE THE ABOVE CODE //////////////////////////////// NIRENJ
function initAllCookies(ListBox) {	
	var arr_retVal,stext;
	var arr_Val,count;
	var sProductCode,sRefNo,sRefDesc,sRemarks,sFileRef,sUserRemark;
	var IsAddSuccess = false;
	var max_item=0;
	var pay_scheme=top.strPaymentScheme;
// var r_items=top.RewItems;

	if (top.strAccessMode == "N"){
		DisplayObject("divInstruction",true);
	}
	else {
		DisplayObject("divInstruction",false);
	}
			
	if (pay_scheme == "TRM") {
		DisplayObject("divSubmitButtons",false);
		DisplayObject("divPointButton",true);
		SetObjectCaption("IdSubmit","Submit");
		DisplayObject("tdPricing",false);

	}else {	
		DisplayObject("divTblOrderItem", true);
		DisplayObject("tdPricing",true);
	
		var butObj = document.getElementById("divPointButton");	
	
		//SzeSeng JR3344 20090311
		//butObj.insertAdjacentHTML("BeforeBegin","<div><font weight=bold color=#336699 FAMILY='Verdana, Arial, Helvetica, sans-serif'>Payment Mode</font></div><br>");
		if (butObj!=null)
		{
			//insertAjacentHTML is over-rided above to make it work for IE & FF
			butObj.insertAdjacentHTML("BeforeBegin","<div><font weight=bold color=#336699 FAMILY='Verdana, Arial, Helvetica, sans-serif'>Payment Mode</font></div><br>");
		}
		//SzeSeng JR3344 20090311
	
	/*	
		if (top.IsNormalPack == 1) {
			DisplayObject("divPointButton",false);
		}
		else {
			DisplayObject("divPointButton",true);
			SetObjectCaption("IdSubmit","Point");
		}
	*/
		
		DisplayObject("divSubmitButtons",true);
		// SetObjectCaption("IdSubmitVisa","Visa Card");
		// SetObjectCaption("IdSubmitMaster","Master Card");
	}
    //SM Dec 05, 06 - for garbage character problem
	/*if (pay_scheme != "TRM") {
		max_item=top.MAX_PDT_ITEM;
		for (var j=1; j<=max_item; j++) {
			arr_retVal = getCookies(top.gpdtco[j]);

			if (arr_retVal != ""){
				arr_retVal = arr_retVal.split(",");
		
				for (var i=0; i<arr_retVal.length; i++)
				{
					arr_Val = arr_retVal[i].split("~");
					if (arr_Val != ""){
						//count = arr_Val.length;
									
						sProductCode = arr_Val[0];
						sRefNo = arr_Val[1];
						sRefDesc = arr_Val[2],120;
						sRemarks = FixLen(arr_Val[3],100);
						sFileRef = FixLen(arr_Val[4],40);
						sUserRemark = FixLen(arr_Val[5],255);
																				
						if (sRefNo!= "" && sRefDesc !="") {
							//if(sProductCode == "SGPFLH"){
							//	stext=FixLen(sProductCode,7) + FixLen(sRefNo,11)+ FixLen(sRefDesc,121) + FixLen(sRemarks,101) + FixLen(sFileRef,40); 
							//}else{
								stext=FixLen(sProductCode,8) + FixLen(sRefNo,20)+ FixLen(sRefDesc,120) + FixLen(sRemarks,100) + FixLen(sFileRef,40) + FixLen(sUserRemark,255);
							//}
					
							if (ListBox_AddItem(ListBox,stext,stext,sProductCode)==true) {
								IsAddSuccess = true;
							}
						}//if
					}//if
				}//for
			}//if
		}//for
	}// if 
	*/
	return IsAddSuccess;
} //initAllCookies


function ListBox_Item(pText){
	var sPdtCode = trimEx(pText.substr(0,8));
	var sRefNo = trimEx(pText.substr(8,20));
	var sRefDesc = trimEx(pText.substr(28,120));
	//SzeSeng JR3304 20081216
	//var sRemark = trimEx(pText.substr(148,100));	
	var sRemark = trimEx(pText.substr(148,200));	
	//SzeSeng JR3304 20081216
	//SzeSeng JR3304 20081216
	//var sFileRef = trimEx(pText.substr(248,40));
	var sFileRef = trimEx(pText.substr(348,40));
	//SzeSeng JR3304 20081216
	//SzeSeng JR3306 20081201
	//var sUserRemark = trimEx(pText.substr(288,255));
	//SzeSeng JR3304 20081216
	//var sUserRemark = trimEx(pText.substr(288,500));
	var sUserRemark = trimEx(pText.substr(388,500));
	//SzeSeng JR3304 20081216
	//SzeSeng JR3306 20081201

	alert("Product Code: " + sPdtCode + " (" + top.GetPdtDe(sPdtCode) + ")" +
	"\n" + "Search ID: " + sRefNo +
	"\n" + "Search Desc: " + sRefDesc +
	"\n" + "Remark: " + sRemark +
	"\n" + "User Remark: " + sUserRemark +	
	"\n" + "File Ref: " + sFileRef);
}

function ListBoxFIC_Item(pText){
	// PdtCode
	var sPdtCode = trimEx(pText.substr(0,8));
	// RefNo
	var sCountry = trimEx(pText.substr(8,3));
	var sState = trimEx(pText.substr(11,17));
	//RefDesc
	var sSurName = trimEx(pText.substr(28,100));
	var sDOB = trimEx(pText.substr(128,20));
	//IT Remark
	var sForeName = trimEx(pText.substr(148,100));
	var sPostCode = trimEx(pText.substr(248,50));
	var sPhoneNo = trimEx(pText.substr(298,50));
	
	//FileRef
	var sFileRef = trimEx(pText.substr(348,40));

	//User Remark
	var sBlk = trimEx(pText.substr(388,50));
	var sStreet = trimEx(pText.substr(438,255));
	var sTown = trimEx(pText.substr(693,195));
	
	//Passport
	var sPassCtry = trimEx(pText.substr(888,3));
	var sPassNo = trimEx(pText.substr(891,50));
	
	//Bank Detail
	var sBankCtry = trimEx(pText.substr(941,3));
	var sAcctDetail1 = trimEx(pText.substr(944,35));
	var sAcctDetail2 = trimEx(pText.substr(979,35));
	var sAcctDetail3 = trimEx(pText.substr(1014,35));
	var sAcctDetail4 = trimEx(pText.substr(1049,35));
	var sAcctDetail5 = trimEx(pText.substr(1084,35));
	
	alert("Product Code: " + sPdtCode + " (" + top.GetPdtDe(sPdtCode) + ")" +
	"\n" + "File Ref: " + sFileRef +
	"\n" + "Country: " + sCountry +
	"\n" + "State: " + sState +
	"\n" + "SurName: " + sSurName +
	"\n" + "Date of Birth: " + sDOB +	
	"\n" + "Forename: " + sForeName +
	"\n" + "Postal Code: " + sPostCode +
	"\n" + "Telephone Number: " + sPhoneNo +
	"\n" + "Block / House / Appt No.: " + sBlk +	
	"\n" + "Street Name: " + sStreet +	
	"\n" + "Town / City: " + sTown + 
	"\n" + "Passport Nationality: " + sPassCtry +
	"\n" + "Passport Number: " + sPassNo +
	"\n" + "Bank Account Country: " + sBankCtry +
	"\n" + "Bank Account Detail 1: " + sAcctDetail1 +
	"\n" + "Bank Account Detail 2: " + sAcctDetail2 +
	"\n" + "Bank Account Detail 3: " + sAcctDetail3 +	
	"\n" + "Bank Account Detail 4: " + sAcctDetail4 +
	"\n" + "Bank Account Detail 5: " + sAcctDetail5);
}

function SetObjectCaption(pObject,pText){
	var oMyObject=document.getElementById(pObject);
	if (oMyObject==null)
	{
		return;
	}
	if (document.all) 
	{
		oMyObject.innerHTML=pText
	}
	else
	{
		//oMyObject.innerHTML=pText;
		try 
		{
			var r = oMyObject.ownerDocument.createRange();
			r.selectNodeContents(oMyObject);
			r.deleteContents();
			var df = r.createContextualFragment(pText);
			oMyObject.appendChild(df);
		}
		catch(err)
		{
			alert('error: ' + err.description);
		}
	}
	
	var uPText = pText.toUpperCase();
	
	if (uPText == "SUBMIT")
		oMyObject.title = "Submit";
	else		
		oMyObject.title = pText;	
	
	delete oMyObject;
}

function GetObjectCaption(pObject){
	var oMyObject=document.getElementById(pObject);
	
	return oMyObject.title;
}

function selectProductCode(pPdtCode,pObject){	
	var oMyObject = document.getElementsByName(pObject);
	if (pPdtCode != ""){
		for (var i=0; i < oMyObject.length; i++){
			if (oMyObject[i].value == pPdtCode)
				oMyObject[i].checked = true;
		}
	}
	delete oMyObject;
}

function lb_setitem(sourceList, sVal) {	
	if(sourceList==null) return;
	var n=sourceList.length;
	for (var i=0; i < n; i++) {			
		if (sourceList.options[i].value==sVal) {
			sourceList.options[i].selected=true;
			return true;
		}
	}//for	
} 

function radio_checkitem(source_radio, sval) {	
	var n=source_radio.length
	for (var i=0; i < n; i++){
	  if (source_radio[i].value==sval)
		{
		  source_radio[i].checked=true;
		  return true;
		}
	}
	return;
} //radio_checkitem

function showHideLastInstruction(pInstruction){
	if (top.strPaymentScheme == "TRM"){
		if (top.strAccessMode == "N")
			DisplayObject(pInstruction,false);
	}
	else{
		if (top.strAccessMode == "N")
			DisplayObject(pInstruction,true);
		else
			DisplayObject(pInstruction,false);
	}
}

function iscleartogo(srclist) {	
	var pc="";
	if(srclist==null) return false;
	var n=srclist.length;
	//alert(n);
	for (var i=0; i < n; i++) {
		pc=srclist.options[i].value;
		pc=trimEx(pc.substr(0,8));
		if (isforbid(pc)==true) {
			alert("'" + pc + "'" + " search can only be purchased using points!" )
			return false;
		}
	}//for	
	return true;
} //iscleartogo

function isforbid(pc) {
 pc=pc.toUpperCase();
 switch (pc) {
 	case 'SVCH': return true;
 	case 'EPS' : return true; 
 	case 'LTS' : return true;
 	case 'WSSD': return true;
 	case 'JMD' : return true;
 	case 'M&AH' : return true;
 	case 'ARH' : return true;
 	case 'CHGH' : return true;
 	case 'F09H' : return true;
 	case 'F11H' : return true;
 	case 'F13H' : return true;
 	case 'F24H' : return true;
 	case 'F41H' : return true;
 	case 'F49H' : return true;
 	case 'F65H' : return true;
 	case 'OTHER' : return true;
 	case 'QS' : return true;
 	case 'EQS' : return true;
 	case 'IAS' : return true;
 default:
  return false;	
  }
}

function disphelp(pdtcode) {
	var attr="left=20px,top=10px,resizable=yes,width=700px,height=480px,toolbar=0,menubar=1,status=1,directories=1,scrollbars=1";
	var myurl="/dohelp.asp?code=" + pdtcode + "&sid=" + top.strSessionID;
	window.open(myurl,"QuestNet_Help",attr);
}

function gettotalprice(ListBox) {
	var packageTotalPrice=0;
	var sItem="";var pc=""; var pid=0; var sPackagePrice=0;
	var mysid;
	
	if (self.opener) {
		var myprice=self.opener.top.GetPackPrice;
		var mycom=self.opener.top.GetPackCom;
		var mypid=self.opener.top.GetPdtId;
		mysid=self.opener.top.strSessionID;
	} else if (top.strSessionID) {
		var myprice=top.GetPackPrice;
		var mycom=top.GetPackCom;
		var mypid=top.GetPdtId;
		mysid=top.strSessionID;
	} else {
		alert("session id is missing");
		return
	}
	
	for (var i=0; i<ListBox.length; i++) { 
		sItem=ListBox.options[i].value;		// .text=display text
		var pc=trimEx(sItem.substr(0,8))
		pid=mypid(pc);
		sPackagePrice=myprice(pid) + mycom(pid);
		packageTotalPrice+=sPackagePrice
	}
	return packageTotalPrice;
}

function cntrewitems(ListBox) {
	var sItem="", pc="";
	var pid=0;
	var n=0;
	
	if (self.opener) {
		var isrew=self.opener.top.IsRewItem;
		var mypid=self.opener.top.GetPdtId;
	} else if (top.strSessionID) {
		var isrew=top.IsRewItem;
		var mypid=top.GetPdtId;
	} else {
		alert("session id is missing");
		return 0;
	}
	for (var i=0; i<ListBox.length; i++) { 
		sItem=ListBox.options[i].value;
		var pc=trimEx(sItem.substr(0,8))
		pid=mypid(pc);
		if (isrew(pid)==true) {
			n++;
		}
	}
	return n;
}

function verifyppayment(mylistbox, balstr) {
  var totalprice=gettotalprice(mylistbox);
  var tmp_bal;
  var pdtbal=0, hasrew=false, rewbal=0, npos=-1, bal=0;
  var tstr="";
  tmp_bal=balstr;
  var IsNormalPack;
  if (top.IsNormalPack) {
		IsNormalPack=top.IsNormalPack;
  }
  else {
		IsNormalPack=0;
  }
  
  
  try { 
    var nitem=mylistbox.length;
 	if (tmp_bal==null) return false;
      var arr=tmp_bal.split("|");
      
		for (var i=0; i<arr.length; i++) {
	    if (arr[i].indexOf("PdtBal=")==0) {
				npos=arr[i].indexOf("PdtBal=");
				tstr=arr[i].substring(npos+7);
				if (!isNaN(tstr))
					bal=parseFloat(tstr);
				else 
					bal=0;
	    }
	    else if (arr[i].indexOf("RewPdtBal=")==0) {
				npos=arr[i].indexOf("RewPdtBal=");
				tstr=arr[i].substring(npos+10);
				if (!isNaN(tstr)) 
					rewbal=parseFloat(tstr);
				else
					rewbal=0;	
      }     
	  else if (arr[i].indexOf("HasRewPdt=")==0) {
				npos=arr[i].indexOf("HasRewPdt=");
				tstr=arr[i].substring(npos+10);
				if (tstr!=null) {tstr=tstr.toLowerCase();}
				hasrew=tstr;
				if (hasrew=="true" || hasrew=="TRUE" || hasrew==true) {
					hasrew=true;
				}
				else {
					hasrew=false
				}
			}
		} //for
	} //try
	catch (e) {
		//
		alert(e.toString());
	}	    
  
  
	if (!isNaN(totalprice))
		totalprice=parseFloat(totalprice);
	else
		return false;
			
	if (!isNaN(bal))
		bal=parseFloat(bal);
	else
		return false;

	if (hasrew==true || hasrew=="true" )	{
		var rewcnt=cntrewitems(mylistbox);
		
		if ( (nitem > rewcnt) && (rewcnt > 0) ) {
			alert("You are not allowed to purchase other searches using Free Unit!")
			return false;
		}
	  if ( (rewcnt > 0) &&  (totalprice > rewbal) )  {
			if (IsNormalPack==1) {
				alert("You do not have anymore Free Units. Please use Visa or Master Card to buy.")
				return false;
			}
			else {
				var agree=confirm("You do not have anymore Free units. Please click ok to proceed to buy by using your pre-paid points.")
				  if (agree)
				    return true;
				  else
				    return false;
			}
		}
	  if (bal >= totalprice || rewbal >= totalprice ) {
			return true;
	  }
	}
	else if (bal >= totalprice) {
		return true;
	}
	var str1="Insufficient points to proceed your search.\n" +
	           "   Total Amount :  " + totalprice.toFixed(2) + "\n" +
			   "   Current Balance :  " + bal.toFixed(2) + "\n" +
	           "Would you like to top up your account now?"
	if ( confirm(str1) ) { 
		myurl='/Subscribe/getsubsplan.asp?sid='+getparentsid();
		//Next line commented by Sonal, Sep 25, 06
		//window.open(myurl,"topup",getattr())    
		//Next line attributes changed to give larger width of pop-up window  
		window.open(myurl,"topup","left=10,top=10,resizable=no,width=800,height=500")
		return false;
	}
	
	return false;
}

function outputMoney(number) {
    return outputDollars(Math.floor(number-0) + '') + outputCents(number - 0);
}

function outputDollars(number) {
    if (number.length <= 3)
        return (number == '' ? '0' : number);
    else {
        var mod = number.length%3;
        var output = (mod == 0 ? '' : (number.substring(0,mod)));
        for (i=0 ; i < Math.floor(number.length/3) ; i++) {
            if ((mod ==0) && (i ==0))
                output+= number.substring(mod+3*i,mod+3*i+3);
            else
                output+= ',' + number.substring(mod+3*i,mod+3*i+3);
        }
        return (output);
    }
}

function outputCents(amount) {
    amount = Math.round( ( (amount) - Math.floor(amount) ) *100);
    return (amount < 10 ? '.0' + amount : '.' + amount);
}

function getattr(url, width, height, returnFunc, args) {
	var attr="left=10,top=10,resizable=no,width=600,height=500";
	return attr;
}

function do_submit(myform, mylistbox) {
	if (mylistbox.length < 1) {
		alert("Please add your search item(s).")
		return;
	}
	
	//Disabled all the button when is going to submit
	//to prevent submit twice
	//var y = myform.getElementsByTagName('a');
	var y=document.links;
	for (var i=0;i<y.length;i++) {	
	
		y[i].disabled = true;
    y[i].oldOnClick = y[i].onclick;
		y[i].onclick = cancelLink;
		if (y[i].style)
			y[i].style.cursor = 'default';
	}
	selectList(mylistbox);
	if (top.strPaymentScheme!="TRM")
	{
	
		deleteAllCookie();
	}
		
	myform.submit();
}

function getbalance() {
	var myurl="/account/getbal.asp?sid="+getparentsid();
	if (document.all) {
		var retval=openDialogIE(myurl)
		return retval;
	}	
	else { //NS
		openDialog(myurl,500,350,getbalance_ns);
	}
}

//Added by EL 4th Jan 2005 - updated on 18th Mar 2005 to include FINN
function check_nonNPprod(ListBox) {
	var sItem="";var pc="";
	var mysid; var isok=false;
	var errmsg;
	errmsg = "Your order contains item(s) which cannot be pay by point.\n\nPlease note that points payment are for the following products/searches only"
	errmsg = errmsg + "\n- Enhanced Individual Search (EIS)\n- Enhanced Corporate Search (ECS)\n- Complete Litigation Search (CLIT)\n- Available Litigation Search (ALIT)\n- Financials Online (FINO)\n- Financial Online With Notes(FINN)"
	
	if (top.IsNgeeAnn == "True") {
		if (self.opener) {
			mysid=self.opener.top.strSessionID;
		} else if (top.strSessionID) {
			mysid=top.strSessionID;
		} else {
			alert("session id is missing");
			return false;
		}
	
		for (var i=0; i<ListBox.length; i++) { 
			sItem=ListBox.options[i].value;		// .text=display text
			var pc=trimEx(sItem.substr(0,8))
			
			if (pc=="EIS" ||  pc=="ECS" ||  pc=="PLIT" || pc=="ALIT" || pc=="FINO" || pc=="FINN") {
				isok=true;
			} else {
				alert(errmsg);
				return false;
			}
		}
	}
	return true;
}

function cancelLink () {
  return false;
}

