﻿//JScript File
//This JS file contains code for saving bookmarks.
Ajax.Commands.SaveBookmark=function(elementId, ajaxCommand, cmdCounter){
	this.priority=net.CommandQueue.PRIORITY_IMMEDIATE;
	this.type=net.CommandQueue.TYPE_SINGLEPROCESS;
	this.id=cmdCounter;
	this.ajaxCommand = ajaxCommand;		
	var saveBookmarkParams = elementId.toString().split('|');	
	this.vendorLocationId = saveBookmarkParams[0];
	this.bookmarkValue = saveBookmarkParams[1];
	this.targetPage = saveBookmarkParams[2];
	this.step1DynamicUpdate = 'N';
	if(this.targetPage == 'Step1Bookmark') {
	    if(document.getElementById('Step1RecentRestaurantsBookmark_'+this.vendorLocationId) != null) {
		this.step1DynamicUpdate = 'Y';
	    }
	}
	if(this.targetPage == 'Step1RecentRestaurantsBookmark') {
	    if(document.getElementById('Step1Bookmark_'+this.vendorLocationId) != null) {
		this.step1DynamicUpdate = 'Y';
	    }
	}
}

Ajax.Commands.SaveBookmark.prototype.QueryStringVariables=function() {
    var commandVariables = new Hashtable();
    commandVariables.put("vendorLocationId", this.vendorLocationId);
    commandVariables.put("bookmarkValue", this.bookmarkValue);
    commandVariables.put("targetPage", this.targetPage);
    commandVariables.put("step1DynamicUpdate", this.step1DynamicUpdate);
    
    return commandVariables;    
}

Ajax.Commands.SaveBookmark.prototype.ParseResponse=function(docEl) {
    var attrs = docEl.attributes;
    var status = attrs.getNamedItem('status').value;
    var message = attrs.getNamedItem('message').value;
    if(status == 'success') {

	var htmlElementId =  attrs.getNamedItem('htmlElementId').value;	
	var bookmarkHtmlContent = attrs.getNamedItem('bookmarkHtmlContent').value;
	var targetPage = attrs.getNamedItem('targetPage').value;
	var vendorLocationId = attrs.getNamedItem('vendorLocationId').value;
	var dynamicUpdateBookmarkHtmlContent = attrs.getNamedItem('dynamicUpdateBookmarkHtmlContent').value;
		  
	if(targetPage == 'Step1Bookmark') {
	    var step1RecentRestaurantsBookmarkId = document.getElementById('Step1RecentRestaurantsBookmark_'+vendorLocationId);
	    if(step1RecentRestaurantsBookmarkId != null) {
		step1RecentRestaurantsBookmarkId.innerHTML = dynamicUpdateBookmarkHtmlContent;
	    }
	} 
	if(targetPage == 'Step1RecentRestaurantsBookmark') {
	    var step1BookmarkId = document.getElementById('Step1Bookmark_'+vendorLocationId);
	    if(step1BookmarkId != null) {
		step1BookmarkId.innerHTML = dynamicUpdateBookmarkHtmlContent;
	    }
	} 
	
	//dynamically update bookmark html content while bookmarking a vendor / recent restaurant on step2
	var criteriaSpanElement = 'span[id=' + htmlElementId + ']';
	if(targetPage == "Step2Bookmark" || targetPage == "OrderHistoryBookmark") {
	    var myElements = $(criteriaSpanElement);
	    for(i=0; i<myElements.length; i++) {
		myElements[i].innerHTML = bookmarkHtmlContent;
	    }
	} else {
	    document.getElementById(htmlElementId).innerHTML = bookmarkHtmlContent;	
	}
			
	//dynamically show/hide the my bookmarked restaurants div based on bookmarked vendors count...
	var countOfBookmarkedVendors = parseInt(attrs.getNamedItem('countOfBookmarkedVendors').value);
	if(targetPage == 'Step2Bookmark') {
	    var divTagId = 'MyBookmarkedRestaurantsDiv';
	    if(countOfBookmarkedVendors > 0) {
	       document.getElementById(divTagId).style.display = 'block';
	       document.getElementById(divTagId).style.visibility = 'visible';	       
	    } else {
	       document.getElementById(divTagId).style.display = 'none';
	       document.getElementById(divTagId).style.visibility = 'hidden';
	    }
	}
	net.Base.ReleaseQueue(); 
    } else {
	alert(message);
    }
}
