//<!-- CMS File Ajax/Offers related Libraries ->
// Author: Tonie Santos, GMBS  04-16-2007

//List Variables
var assetId = "";
var listText = "";
var listLinkText = "";
var listTitle = "";
var  merchantName =  "";
var catName = "";
var couponFlag = "";
var assetFileLocList = "";
var listImageAltText = "";

//Details Variables
var collectionName = "";
var active = "";
var country = "";
var metaDescription = "";
var metaKeywords = "";
var subTitle = "";
var backLinkText = "";
var offerTitle = "";
var offerDescription = "";
var guidelineTitle = "";
var guidelineText = "";
var termsConditionsTitle = "";
var termsAndConditionsText = "";
var savingsTitle = "";
var savingsCode = "";
var savingsActionLinkURL = "";
var savingsActionLinkText = "";
var footnoteText = "";
var mainAssetFileName = "";
var image1FileName = "";
var image2FileName = "";
var image3FileName = "";
var image4FileName = "";
var offerImageAltText = "";
var pageTitleImageAltText = "";
var imgContent = ""; 
var pixContent = "";
var mainRef = "";
var img1Ref = "";
var img2Ref = "";
var img3Ref = "";
var img4Ref = "";

//Features Box Variables
var assetFileLocFeatureBox = "";
var featureBoxImageAltText = "";
var featureBoxText 	   = "";
var featureBoxLinkText 	   = "";

//determine Env
var x_hostname = location.hostname;
// check for typical non-prod domains as well as IP addresses
var x_regex = new RegExp("\\b(dev|localhost|\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\\b", "i");
var x_matches = x_hostname.match(x_regex);

var glbEnvironment = "dev";
if(x_matches == null) {
   glbEnvironment = "stage-prod";
} 

///Methods

function doAjax (url) {
	if (window.XMLHttpRequest) {
	 	req = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	req.open("GET", url, false);
    req.send(null);
    return req;
}


function getMerchantList() {
 var req = doAjax ("/cmsfile/servlet/OMTOnlineMerchantList");
	 var merchantName = "";
	 var merchantOpts = "";
	 if (req.status == 200) { //Successfull HTTP interaction
		var messageXML     =  req.responseXML.documentElement;
		var x = messageXML.getElementsByTagName("com.mastercard.inter.inet.cms.common.merchant.model.Merchant");
		for (i=0;i<x.length;i++) {
			 try { merchantName = messageXML.getElementsByTagName("name")[i].childNodes[0].nodeValue;
			     } catch (e) { merchantName = ""; }
			 merchantOpts += '<option value="' + merchantName + '">' + merchantName + '</option>';

		}
     }
     return merchantOpts;
}

function getCategoryList() {
 var req = doAjax ("/cmsfile/servlet/OMTOnlineCategoryList");
	 var categoryName = "";
	 var categoryOpts = "";
	 if (req.status == 200) { //Successfull HTTP interaction
		var messageXML     =  req.responseXML.documentElement;
		var x = messageXML.getElementsByTagName("com.mastercard.inter.inet.cms.common.offercategory.model.OfferCategory");
		for (i=0;i<x.length;i++) {
			 try { categoryName = messageXML.getElementsByTagName("name")[i].childNodes[0].nodeValue;
			     } catch (e) { categoryName = ""; }
			 categoryOpts += '<option value="' + categoryName + '">' + categoryName + '</option>';

		}
     }
     return categoryOpts;
}

function doReplace(string,text,by) {
    // Replaces text with by in string
    var i = string.indexOf(text), newstr = '';
    if ((!i) || (i == -1))
	return string;
    newstr += string.substring(0,i) + by;
    if (i+text.length < string.length)
	newstr += replace(string.substring(i+text.length,string.length),text,by);
    return newstr;
}

function getParm(string,parm) {
    // returns value of parm from string
    var startPos = string.indexOf(parm + "=");
    if (startPos > -1) {
	startPos = startPos + parm.length + 1;
	var endPos = string.indexOf("&",startPos);
	if (endPos == -1)
	    endPos = string.length;
	return unescape(string.substring(startPos,endPos));
    }
    return '';
}

function getOfferDetails() {
     var url_param = doReplace(location.search.substring(1),"+"," ");
     if(url_param == "") return false;
     assetId = getParm(url_param,'offerId');

     var url = "/cmsfile/servlet/OfferDetail?offerId=" + assetId;	
     var req = doAjax (url);

     if (req.status == 200) { //Successfull HTTP interaction
	 // update the HTML DOM based on whether or not message is valid
	 var messageText    = req.responseText;   // Just regex the section you needed to display.
	 var messageXML     =  req.responseXML.documentElement
       //   alert(messageText);
	 setPageContent(messageXML);
     }
}

function setPageContent(xpage) {
	try { collectionName 	   = xpage.getElementsByTagName("collectionName")[0].childNodes[0].nodeValue;
	} catch (e) { collectionName = ""};	
	try { active 		   = xpage.getElementsByTagName("active")[0].childNodes[0].nodeValue;
	} catch (e) { active = ""};	
	try { country 		   = xpage.getElementsByTagName("country")[0].childNodes[0].nodeValue;
	} catch (e) { country = ""};		
	try { metaKeywords 		   = xpage.getElementsByTagName("keywords")[0].childNodes[0].nodeValue;
	} catch (e) { metaKeywords = ""};	
	try { metaTitle 			   = xpage.getElementsByTagName("title")[0].childNodes[0].nodeValue;
	} catch (e) { metaTitle = ""};
	try { subTitle				= xpage.getElementsByTagName("subTitle")[0].childNodes[0].nodeValue;
	} catch (e) { subTitle = ""};
	try { backLinkText 			= xpage.getElementsByTagName("backLinkText")[0].childNodes[0].nodeValue;
	} catch (e) { backLinkText = ""};
	try { offerDescription  = xpage.getElementsByTagName("offerDescription")[0].childNodes[0].nodeValue;
	} catch (e) { offerDescription = ""};
	try {guidelineTitle		   = xpage.getElementsByTagName("guidelineTitle")[0].childNodes[0].nodeValue;
	} catch (e) { guidelineTitle = ""};
	try { guidelineText    = xpage.getElementsByTagName("guidelineText")[0].childNodes[0].nodeValue;
	} catch (e) { guidelineText = ""};
	try { savingsCode 	  	   = xpage.getElementsByTagName("savingsCode")[0].childNodes[0].nodeValue;
	} catch (e) { savingsCode = ""};
	try { savingsTitle 	   = xpage.getElementsByTagName("savingsTitle")[0].childNodes[0].nodeValue;
	} catch (e) { savingsTitle = ""};
	try { savingsActionLinkURL = xpage.getElementsByTagName("savingsActionLinkURL")[0].childNodes[0].nodeValue;
	} catch (e) { savingsActionLinkURL = ""};
	try { savingsActionLinkText = xpage.getElementsByTagName("savingsActionLinkText")[0].childNodes[0].nodeValue;
	} catch (e) { savingsActionLinkText = ""};
	try { termsConditionsTitle  = xpage.getElementsByTagName("termsConditionsTitle")[0].childNodes[0].nodeValue;
	} catch (e) { termsConditionsTitle = ""};
	try { termsAndConditionsText = xpage.getElementsByTagName("termsConditionsText")[0].childNodes[0].nodeValue;
	} catch (e) { termsAndConditionsText = ""};
	try { mainAssetFileName = xpage.getElementsByTagName("mainAssetFileName")[0].childNodes[0].nodeValue;
	} catch (e) { mainAssetFileName = ""};
	try { image1FileName = xpage.getElementsByTagName("image1FileName")[0].childNodes[0].nodeValue;
	} catch (e) { image1FileName = ""};
	try { image2FileName = xpage.getElementsByTagName("image2FileName")[0].childNodes[0].nodeValue;
	} catch (e) { image2FileName = ""};
	try { image3FileName = xpage.getElementsByTagName("image3FileName")[0].childNodes[0].nodeValue;
	} catch (e) { image3FileName = ""};
	try { image4FileName = xpage.getElementsByTagName("image4FileName")[0].childNodes[0].nodeValue;
	} catch (e) { image4FileName = ""};
	try { offerImageAltText = xpage.getElementsByTagName("offerImageAltText")[0].childNodes[0].nodeValue;
	} catch (e) { offerImageAltText = ""};
	try { pageTitleImageAltText = xpage.getElementsByTagName("pageTitleImageAltText")[0].childNodes[0].nodeValue;
	} catch (e) { pageTitleImageAltText = ""};
	try { offerTitle = xpage.getElementsByTagName("offerTitle")[0].childNodes[0].nodeValue;
	} catch (e) { offerTitle = ""};
	
	mainRef = "/cmsfile/asset/view/CMSFileViewServletLive?assetOptId=1&assetId=" +  assetId;
	img1Ref = "/cmsfile/asset/view/CMSFileViewServletLive?assetOptId=7&assetId=" +  assetId;
	img2Ref = "/cmsfile/asset/view/CMSFileViewServletLive?assetOptId=8&assetId=" +  assetId;
	img3Ref = "/cmsfile/asset/view/CMSFileViewServletLive?assetOptId=9&assetId=" +  assetId;
	img4Ref = "/cmsfile/asset/view/CMSFileViewServletLive?assetOptId=10&assetId=" +  assetId;
	if (glbEnvironment != "dev") {
	   mainRef = "/assetfile/" + assetId + "/1/"  + mainAssetFileName;
	   img1Ref = "/assetfile/" + assetId + "/7/"  + image1FileName; 
	   img2Ref = "/assetfile/" + assetId + "/8/"  + image2FileName; 
	   img3Ref = "/assetfile/" + assetId + "/9/"  + image3FileName; 
	   img4Ref = "/assetfile/" + assetId + "/10/" + image4FileName; 
	}		
}


function setListDetails(i, messageXML) {              
	try { assetId = messageXML.getElementsByTagName("assetId")[i].childNodes[0].nodeValue;
	  } catch (e) { assetId = ""; }
	try { listText = messageXML.getElementsByTagName("listText")[i].childNodes[0].nodeValue;
	  } catch (e) { listText = ""; }
	try { listLinkText = messageXML.getElementsByTagName("listLinkText")[i].childNodes[0].nodeValue;
	  } catch (e) { listLinkText = ""; }
	try { listTitle = messageXML.getElementsByTagName("listTitle")[i].childNodes[0].nodeValue;
	  } catch (e) { listTitle = ""; }
	try { merchantName = messageXML.getElementsByTagName("merchantName")[i].childNodes[0].nodeValue;
	  } catch (e) { merchantName = ""; }
	try { catName = messageXML.getElementsByTagName("catName")[i].childNodes[0].nodeValue;
	  } catch (e) { catName = ""; }
	try { couponFlag = messageXML.getElementsByTagName("couponFlag")[i].childNodes[0].nodeValue;
	  } catch (e) { couponFlag = ""; }
	try { assetFileLocList = messageXML.getElementsByTagName("assetFileLocList")[i].childNodes[0].nodeValue;
	  } catch (e) { assetFileLocList = ""; }
	try { listImageAltText = messageXML.getElementsByTagName("listImageAltText")[i].childNodes[0].nodeValue;
	  } catch (e) { listImageAltText = ""; }
}

function setFeatureBox(i, messageXML) {              
	try { assetId = messageXML.getElementsByTagName("assetId")[i].childNodes[0].nodeValue;
	  } catch (e) { assetId = ""; }
	try { couponFlag = messageXML.getElementsByTagName("couponFlag")[i].childNodes[0].nodeValue;
	  } catch (e) { couponFlag = ""; }
	try { assetFileLocFeatureBox = messageXML.getElementsByTagName("assetFileLocFeatureBox")[i].childNodes[0].nodeValue;
	  } catch (e) { assetFileLocFeatureBox = ""; }
	try { merchantName = messageXML.getElementsByTagName("merchantName")[i].childNodes[0].nodeValue;
	  } catch (e) { merchantName = ""; }
	try { catName = messageXML.getElementsByTagName("catName")[i].childNodes[0].nodeValue;
	  } catch (e) { catName = ""; }
	try { featureBoxImageAltText = messageXML.getElementsByTagName("featureBoxImageAltText")[i].childNodes[0].nodeValue;
	  } catch (e) { featureBoxImageAltText = ""; }
	try { featureBoxText = messageXML.getElementsByTagName("featureBoxText")[i].childNodes[0].nodeValue;
	  } catch (e) { featureBoxText = ""; }
	try { featureBoxLinkText = messageXML.getElementsByTagName("featureBoxLinkText")[i].childNodes[0].nodeValue;
	  } catch (e) { featureBoxLinkText = ""; }	  
	try { listTitle = messageXML.getElementsByTagName("listTitle")[i].childNodes[0].nodeValue;
	  } catch (e) { listTitle = ""; }	  
}
