+ dataLine += "TZURL";
+
+ }
+
+ dataLine += ":";
+ dataLine += timeZoneURLData;
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ // Process Standard timezones.
+
+ if (timezoneStandardCollection.size() > 0){
+
+ for (int timezoneStandardSeek = 0; timezoneStandardSeek < timezoneStandardCollection.size();
+ timezoneStandardSeek++){
+
+ *saveData += "BEGIN:STANDARD\n";
+
+ // Process the DTSTART value.
+
+ if (timezoneStandardCollection[timezoneStandardSeek].dateTimeStartData.size() > 0){
+
+ if (timezoneStandardCollection[timezoneStandardSeek].dateTimeStartTokens.size() > 0){
+
+ dataLine += "DTSTART;";
+ dataLine += timezoneStandardCollection[timezoneStandardSeek].dateTimeStartTokens;
+
+ } else {
+
+ dataLine += "DTSTART";
+
+ }
+
+ dataLine += ":";
+ dataLine += timezoneStandardCollection[timezoneStandardSeek].dateTimeStartData;
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ // Process the TZOFFSETFROM value.
+
+ if (timezoneStandardCollection[timezoneStandardSeek].timeZoneOffsetFromData.size() > 0){
+
+ if (timezoneStandardCollection[timezoneStandardSeek].timeZoneOffsetFromTokens.size() > 0){
+
+ dataLine += "TZOFFSETFROM;";
+ dataLine += timezoneStandardCollection[timezoneStandardSeek].timeZoneOffsetFromTokens;
+
+ } else {
+
+ dataLine += "TZOFFSETFROM";
+
+ }
+
+ dataLine += ":";
+ dataLine += timezoneStandardCollection[timezoneStandardSeek].timeZoneOffsetFromData;
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ // Process the TZOFFSETTO value.
+
+ if (timezoneStandardCollection[timezoneStandardSeek].timeZoneOffsetToData.size() > 0){
+
+ if (timezoneStandardCollection[timezoneStandardSeek].timeZoneOffsetToTokens.size() > 0){
+
+ dataLine += "TZOFFSETTO;";
+ dataLine += timezoneStandardCollection[timezoneStandardSeek].timeZoneOffsetToTokens;
+
+ } else {
+
+ dataLine += "TZOFFSETTO";
+
+ }
+
+ dataLine += ":";
+ dataLine += timezoneStandardCollection[timezoneStandardSeek].timeZoneOffsetToData;
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ // Process the RRULE value.
+
+ if (timezoneStandardCollection[timezoneStandardSeek].recurranceRuleData.size() > 0){
+
+ if (timezoneStandardCollection[timezoneStandardSeek].recurranceRuleDataTokens.size() > 0){
+
+ dataLine += "RRULE;";
+ dataLine += timezoneStandardCollection[timezoneStandardSeek].recurranceRuleDataTokens;
+
+ } else {
+
+ dataLine += "RRULE";
+
+ }
+
+ dataLine += ":";
+ dataLine += timezoneStandardCollection[timezoneStandardSeek].recurranceRuleData;
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ // Process the COMMENT value.
+
+ if (timezoneStandardCollection[timezoneStandardSeek].commentList.size() > 0){
+
+ for (int commentListSeek = 0; commentListSeek < timezoneStandardCollection[timezoneStandardSeek].commentList.size();
+ commentListSeek++){
+
+ dataLine += "COMMENT";
+
+ if (timezoneStandardCollection[timezoneStandardSeek].commentListAltRep[commentListSeek].size() > 0){
+
+ dataLine += ";ALTREP=\"";
+ dataLine += timezoneStandardCollection[timezoneStandardSeek].commentListAltRep[commentListSeek];
+ dataLine += "\"";
+
+ }
+
+ if (timezoneStandardCollection[timezoneStandardSeek].commentListLanguage[commentListSeek].size() > 0){
+
+ dataLine += ";LANGUAGE=";
+ dataLine += timezoneStandardCollection[timezoneStandardSeek].commentListLanguage[commentListSeek];
+
+ }
+
+ if (timezoneStandardCollection[timezoneStandardSeek].commentListTokens[commentListSeek].size() > 0){
+
+ dataLine += ";";
+ dataLine += timezoneStandardCollection[timezoneStandardSeek].commentListTokens[commentListSeek];
+
+ }
+
+ dataLine += ":";
+ dataLine += timezoneStandardCollection[timezoneStandardSeek].commentList[commentListSeek];
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the RDATE value.
+
+ if (timezoneStandardCollection[timezoneStandardSeek].recurranceDateData.size() > 0){
+
+ for (int recurranceDataSeek = 0; recurranceDataSeek < timezoneStandardCollection[timezoneStandardSeek].recurranceDateData.size();
+ recurranceDataSeek++){
+
+ dataLine += "RDATE";
+
+ if (timezoneStandardCollection[timezoneStandardSeek].recurranceDateDataValue[recurranceDataSeek].size() > 0){
+
+ dataLine += ";VALUE=";
+ dataLine += timezoneStandardCollection[timezoneStandardSeek].recurranceDateDataValue[recurranceDataSeek];
+
+ }
+
+ if (timezoneStandardCollection[timezoneStandardSeek].recurranceDateDataTimeZoneParam[recurranceDataSeek].size() > 0){
+
+ dataLine += ";TZID=";
+ dataLine += timezoneStandardCollection[timezoneStandardSeek].recurranceDateDataTimeZoneParam[recurranceDataSeek];
+
+ }
+
+ if (timezoneStandardCollection[timezoneStandardSeek].recurranceDateDataTokens[recurranceDataSeek].size() > 0){
+
+ dataLine += ";";
+ dataLine += timezoneStandardCollection[timezoneStandardSeek].recurranceDateDataTokens[recurranceDataSeek];
+
+ }
+
+ dataLine += ":";
+ dataLine += timezoneStandardCollection[timezoneStandardSeek].recurranceDateData[recurranceDataSeek];
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the TZNAME value.
+
+ if (timezoneStandardCollection[timezoneStandardSeek].timeZoneNameData.size() > 0){
+
+ for (int timezoneNameSeek = 0; timezoneNameSeek < timezoneStandardCollection[timezoneStandardSeek].timeZoneNameData.size();
+ timezoneNameSeek++){
+
+ dataLine += "TZNAME";
+
+ if (timezoneStandardCollection[timezoneStandardSeek].timeZoneNameLanguage[timezoneNameSeek].size() > 0){
+
+ dataLine += ";LANGUAGE=";
+ dataLine += timezoneStandardCollection[timezoneStandardSeek].timeZoneNameLanguage[timezoneNameSeek];
+
+ }
+
+ if (timezoneStandardCollection[timezoneStandardSeek].timeZoneNameTokens[timezoneNameSeek].size() > 0){
+
+ dataLine += ";";
+ dataLine += timezoneStandardCollection[timezoneStandardSeek].timeZoneNameTokens[timezoneNameSeek];
+
+ }
+
+ dataLine += ":";
+ dataLine += timezoneStandardCollection[timezoneStandardSeek].timeZoneNameData[timezoneNameSeek];
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ }