home *** CD-ROM | disk | FTP | other *** search
Wrap
// JavaScript Document var packs_found = 0; var serverSubscriptionXml; function ShowOnlineStore(addToHistory) { if(addToHistory) { dhtmlHistory.add("onlinestore",""); } AdjustPageElements("store"); AbortPendingRequests(); packs_found = 0; ConstructStoreTable(); } // Construct the list of Choices in the Library Browser function ConstructStoreTable() { SetStoreBannerTopRow(false); // i18n issue SetOperationStatus('storeBanner', "Accessing Web Packs Collection ..."); //On slow systems this should give an intermediate "Loading..." screen. document.getElementById('loading').style.display="block"; // Generate the XMLHTTPRequest to get the XML response file var url = "/webaroo/e29f1fe6/myplaces?resourceType=serverSubscriptionListXml"; SendAsynchornousRequest(url, "", ShowStoreTable, ""); } function ShowStoreTable(storeXml, data) { if (currentView == "store") { SetOperationStatus('storeBanner', ""); serverSubscriptionXml = storeXml; if(CheckForError()==false) { renderXMLStoreTableData(); if(packs_found != 0) { document.getElementById('device_choices').style.display="block"; } } document.getElementById('loading').style.display="none"; } } function SetStoreBannerTopRow(setInfo) { var storebuttons = document.getElementById('storeButton'); var storeinfo = document.getElementById('storeInfo'); if (setInfo) { storebuttons.innerHTML = "<button type=\"button\" id=\"update\" name=\"update\" title=\"Subscribe to the Store content\" onClick=\"AddContentSelection()\">Add To My Library</button> "; var htmlData = ""; if (storeTotalSizeList.length > 0) { htmlData = "<div id=\"onlineStoreSize\"><font class=\"StoreSize\">"; htmlData += "My Library: " + storeLibrarySizeList[0] + " " + "(" + storeAvailableSizeList[0] + " Free)"; //htmlData += "Available/Total: <b>" + storeAvailableSizeList[0] + "/" + storeTotalSizeList[0] +"</b> "; htmlData += "</font></div>"; } storeinfo.innerHTML = htmlData; // Call the rounded corner function //if(NiftyCheck()) //{ //Rounded("div#onlineStoreSize","all","#FFAA44","#FFCC88","smooth"); //} } else { storebuttons.innerHTML = ""; storeinfo.innerHTML = ""; } } function CheckForError() { var errormessageobject = serverSubscriptionXml.getElementsByTagName('ErrorMessage'); var detailerrormessageobject=serverSubscriptionXml.getElementsByTagName('DetailedMessage'); if(errormessageobject.length > 0) { var errormessage; for (var j=0;j<errormessageobject.length;j++) { if (errormessageobject[j].nodeType != 1) continue; errormessage=errormessageobject[j].firstChild.nodeValue; } //var detailederrormessage; //for (var j=0;j<detailerrormessageobject.length;j++) //{ // if (detailerrormessageobject[j].nodeType != 1) continue; // detailederrormessage =detailerrormessageobject[j].firstChild.nodeValue; //} SetStoreBannerTopRow(false); SetOperationStatus('storeBanner', errormessage); return true; } else { SetStoreBannerTopRow(true); return false; } } //Construct the specific list of Choices for the Browser function renderXMLStoreTableData() { var tempObject = serverSubscriptionXml.getElementsByTagName('Subscriptions'); var listObject = serverSubscriptionXml.getElementsByTagName('Subscription'); var storeTable = document.getElementById('device_choices_table'); ClearTable('device_choices_table'); AddHeaderRow('device_choices_table','store_view'); var htmlData=""; var newRow, newCell; var keys = new Array(); var values = new Array(); var rowkeys = new Array(); var rowvalues = new Array(); var i=0; for (var j=0;j<listObject.length;j++) { if (listObject[j].nodeType != 1) continue; var currentNodeObject=listObject[j]; var currentSubChannelID; var currentTopic; var currentSize; var currentSizeUnit; var currentLastUpdate; var currentDescription; var currentLanguage; var currentImageCopyFlag; var currentSubscriptionID; for (var k=0;k<currentNodeObject.childNodes.length;k++) { if (currentNodeObject.childNodes[k].nodeType != 1) continue; switch(currentNodeObject.childNodes[k].nodeName) { case 'SubChannelID': currentSubChannelID=currentNodeObject.childNodes[k].firstChild.nodeValue; break; case 'Topic': currentTopic=currentNodeObject.childNodes[k].firstChild.nodeValue; break; case 'DisplaySize': currentSize=currentNodeObject.childNodes[k].firstChild.nodeValue; break; case 'DisplaySizeUnit': currentSizeUnit=currentNodeObject.childNodes[k].firstChild.nodeValue; break; case 'LastUpdate': currentLastUpdate=currentNodeObject.childNodes[k].firstChild.nodeValue; break; case 'Description': currentDescription=currentNodeObject.childNodes[k].firstChild.nodeValue; break; case 'Language': currentLanguage=currentNodeObject.childNodes[k].firstChild.nodeValue; break; case 'ImageCopyFlag': currentImageCopyFlag=currentNodeObject.childNodes[k].firstChild.nodeValue; break; case 'SubscriptionID': currentSubscriptionID=currentNodeObject.childNodes[k].firstChild.nodeValue; break; } } keys[0] = "innerHTML"; keys[1] = "width"; keys[2] = "valign"; keys[3] = "align"; values[0] = "<input name=\"device_choice_checkbox\" type=\"checkbox\" value=\""+ (i++) +"\" />"; values[1] = "20"; values[2] = "top"; values[3] = "center"; newRow = AddRowToTable('device_choices_table', rowkeys,rowvalues,keys, values); keys[3] = ""; values[0] = "<font class=\"ContentName\">" + currentTopic + "</font> <br />"; values[0] += "<image src=\"/webaroo/e29f1fe6/images/webaroo_webpack.gif\" /> <font class=\"itemType\">web pack</font> "; values[1] = "165"; AddCellToRow(newRow, keys, values); values[0] = "<font class=\"itemSize\">" + currentSize + " " + currentSizeUnit + "</font><br />" values[1] = "80"; AddCellToRow(newRow, keys, values); // Truncating size of currentTopic to 100 chars var regularExpr = /'/g currentDescription = currentDescription.replace(regularExpr,'\\\''); var intSize = currentDescription.length; var truncatedTopic = currentDescription.substring(0, 100); if(intSize > 100) { truncatedTopic += "..."; } // I18N issue values[0] = "<b onMouseover=\"ddrivetip('" + currentDescription + "', 300);\" onMouseout=\"hideddrivetip()\">"; values[0] += "<font class=\"itemDes\">" + truncatedTopic + "</font></b>"; values[1] = "270"; AddCellToRow(newRow, keys, values); keys[3] = "noWrap"; values[3] = "true"; values[0] = "<font class=\"itemUpdate\">" + currentLastUpdate + "</font>"; values[1] = "85"; AddCellToRow(newRow, keys, values); } if(listObject.length!=0) { packs_found = 1; AlternateTableRowStyle('device_choices_table'); } else { packs_found = 0; SetOperationStatus('storeBanner', "No content found."); } } function AddContentSelection() { // No subscriptions if (packs_found == 0) { return; } var selectedSubscriptions = new Array(); QuerySelectedCheckboxes(selectedSubscriptions); if (selectedSubscriptions.length > 0) { SendSelectedSubscriptionsToServer(selectedSubscriptions); ShowAddtionStatus(); } else { SetOperationStatus('storeBanner', NoContentSelectedMessage); } } function SendSelectedSubscriptionsToServer(selectedSubscriptions) { var selectedSubscriptionsXml = CreateSelectedSubscriptionsXml(selectedSubscriptions); var url = "/webaroo/e29f1fe6/savemysubs?request=add"; sendXMLData(url, "XMLData=" + selectedSubscriptionsXml); } // Form XML string based on Selected Subscriptions function CreateSelectedSubscriptionsXml(selectedSubscriptions) { var indentLevel = 0; var subsObject = serverSubscriptionXml.getElementsByTagName('Subscriptions'); var currentChannel,currentChannelID ; var currentSubChannel, currentSubChannelID; var j,k,l; var currentIndex=0; var selectedSubscriptionsXml = '<XmlData>\n'; //selectedSubscriptionsXml += GetSpace(++indentLevel) + '<storeID>' + storeID + '</storeID>\n'; selectedSubscriptionsXml += GetSpace(indentLevel) + '<Response>\n'; selectedSubscriptionsXml += GetSpace(++indentLevel) + '<Subscriptions>\n'; for (j=0; j < subsObject.length; ++j) { if (subsObject[j].nodeType != 1) continue; var subscriptionList = subsObject[j].getElementsByTagName('Subscription'); for(k=0;k<subscriptionList.length;k++) { currentSubscription=subscriptionList[k]; //var parentCurrentSubscription = currentSubscription. currentChannelID = subsObject[j].getAttributeNode('ChannelID').nodeValue; currentSubChannel = currentSubscription.getElementsByTagName('SubChannelID'); currentSubChannelID = currentSubChannel[0].firstChild.nodeValue; selected = 0; for (l=0; l < selectedSubscriptions.length; ++l) { if (currentIndex == selectedSubscriptions[l]) { selected = 1; break; } } ++currentIndex; if (selected == 0) continue; selectedSubscriptionsXml += GetSpace(++indentLevel) + '<Subscription>\n'; selectedSubscriptionsXml += GetSpace(++indentLevel) + '<ChannelID>' + currentChannelID + '</ChannelID>\n'; selectedSubscriptionsXml += GetSpace(indentLevel) + '<SubChannelID>' + currentSubChannelID + '</SubChannelID>\n'; --indentLevel; for (l=0; l < currentSubscription.childNodes.length; ++l) { if (currentSubscription.childNodes[l].nodeType != 1) continue; switch(currentSubscription.childNodes[l].nodeName) { case 'SubscriptionID': currentSubscriptionID=currentSubscription.childNodes[l].firstChild.nodeValue; selectedSubscriptionsXml += GetSpace(++indentLevel) + '<SubscriptionID>' + currentSubscriptionID + '</SubscriptionID>\n'; --indentLevel; break; case 'Topic': currentTopic=currentSubscription.childNodes[l].firstChild.nodeValue; selectedSubscriptionsXml += GetSpace(++indentLevel) + '<Topic><![CDATA[' + escape(currentTopic) + ']]></Topic>\n'; --indentLevel; break; case 'Size': currentSize=currentSubscription.childNodes[l].firstChild.nodeValue; selectedSubscriptionsXml += GetSpace(++indentLevel) + '<Size>' + currentSize + '</Size>\n'; --indentLevel; break; case 'Language': currentLanguage=currentSubscription.childNodes[l].firstChild.nodeValue; selectedSubscriptionsXml += GetSpace(++indentLevel) + '<Language><![CDATA[' + escape(currentLanguage) + ']]></Language>\n'; --indentLevel; break; case 'Description': currentDescription=currentSubscription.childNodes[l].firstChild.nodeValue; selectedSubscriptionsXml += GetSpace(++indentLevel) + '<Description><![CDATA[' + escape(currentDescription) + ']]></Description>\n'; --indentLevel; break; case 'ImageCopyFlag': currentImageCopyFlag=currentSubscription.childNodes[l].firstChild.nodeValue; selectedSubscriptionsXml += GetSpace(++indentLevel) + '<ImageCopyFlag>' + currentImageCopyFlag + '</ImageCopyFlag>\n'; --indentLevel; break; } } selectedSubscriptionsXml += GetSpace(indentLevel--) + '</Subscription>\n'; } } selectedSubscriptionsXml += GetSpace(indentLevel--) + '</Subscriptions>\n'; selectedSubscriptionsXml += GetSpace(indentLevel--) + '</Response>\n'; selectedSubscriptionsXml += '</XmlData>\n'; return selectedSubscriptionsXml; } function ShowAddtionStatus() { var listObject = xmlContent.getElementsByTagName('Status'); var status = listObject[0].firstChild.nodeValue; SetOperationStatus('storeBanner', status); ClearAllCheckboxes(); }