

/*
SMMiLe JavaScript Object Model
Version 2.0
By Daryl Beattie, Xiang Chen
Copyright 2000, ScreamingMedia

SAMPLE USAGE [note that "script" tag is broken as "sc ript" so that it does not end this script]:

The code blow goes in the <HEAD> section of your HTML file
replace "JSDir/ContentSetID" with your JavaScript file path and name

<sc ript language="JavaScript" src="JSDir/ContentSetID.js"></sc ript>
<sc ript language="JavaScript">
    if(typeof SMChosenContent != \\'undefined\\') {
        document.write("<scri" + "pt language=\"JavaScript\" src=\"JSDir/ContentSetID" + SMChosenContent + ".js\"></sc" + "ript>");
    }
</scr ipt>

The JavaScript objects are modelled after the SMMiLe XML structure:

<content-set>
    <content>
        <article>
            <title>...</title>
            <metadata>...</metadata>
            <core>...</core>
            <body>...</body>
        </article>
    </content>
    ...    
</content-set>

As for the JavaScript, it is structured like this:

contentSet[0](id, name, language, publishedDate, contents)
|--contents[i](id, revisionId, type, language, role, article) 
    |
    |--article(title, metadata, core, body, photo)
        |
        |--metadata(documentMetadata, publicationMetadata, structuralMetadata, subjectMetadata, relatedContentMetadata, processingMetadata)
        |    |--documentMetadata(storage, publisherReleaseDate,player-url)
        |    |--publicationMetadata(publicationName)
        |    |--structuralMetadata(width,height,format,resolution,duration,mimetype)
        |    |--subjectMetadata(featureName)
		|	 |--relatedContentMetadata(relatedContents)
	    |    |    |--relatedContents[type](id, type, refId, refType);
        |    |--processingMetadata()
        |
        |--core(summaryHeadline, docAbstract, headline, author, copyright, dateLine, dateTime, type, caption)
        |-- photo(url, width, height, alt, caption)

An example of using this object model to print out the body of the second
article is: document.write(SMContentSet[0].contents[1].article.body);

*/




function displayContentPage(url, contentNum, contentSetNum, targetWindowName) {
    // check the arguments...
    if (displayContentPage.arguments.length == 1 ) {
        contentNum=0;
        contentSetNum=0;
        targetWindowName="_self";
    } else if (displayContentPage.arguments.length == 2 ) {
        contentSetNum=0;
        targetWindowName="_self";
    } else if (displayContentPage.arguments.length == 3 ) {
        targetWindowName="_self";
    }

    window.open(url + "?SMDOCID=" + SMContentSet[contentSetNum].contents[contentNum].id + "&SMContentSet=" + contentSetNum, targetWindowName);
}

function getParamValue(matchString, defaultValue) {
    var thisURL = window.location.toString();
    var value = defaultValue;
    if ((thisURL.indexOf("?") != -1) &&
        (thisURL.indexOf(matchString) != -1) &&
        (thisURL.charAt(thisURL.indexOf(matchString) + matchString.length) != "&")) {
        start = thisURL.indexOf(matchString) + matchString.length;
        if (thisURL.indexOf("&", start) > -1) {
            value = thisURL.substring(start, (thisURL.indexOf("&", start)));
        }
        else {
            value = thisURL.substring(start, thisURL.length);
        }
    }
    return value;
}

var SMChosenContent = Number(getParamValue("SMContentIndex=", 0));
var SMChosenContentSet = Number(getParamValue("SMContentSet=", 0));
var SMChosenSegment = getParamValue("SMSegment=", "original");
var SMDOCID = getParamValue("SMDOCID=", "");

function prettyDate(date) {
    var result;
    if (date.substring(5,7) == "01") {result = "January ";}
    else if (date.substring(5,7) == "02") {result = "February ";}
    else if (date.substring(5,7) == "03") {result = "March ";}
    else if (date.substring(5,7) == "04") {result = "April ";}
    else if (date.substring(5,7) == "05") {result = "May ";}
    else if (date.substring(5,7) == "06") {result = "June ";}
    else if (date.substring(5,7) == "07") {result = "July ";}
    else if (date.substring(5,7) == "08") {result = "August ";}
    else if (date.substring(5,7) == "09") {result = "September ";}
    else if (date.substring(5,7) == "10") {result = "October ";}
    else if (date.substring(5,7) == "11") {result = "November ";}
    else {result = "December ";}
    if (date.charAt(8) == "0") {result += date.charAt(9);}
    else {result += date.substring(8,10);}
    return result + ", " + date.substring(0,4);
}

// Metadata sub-type element objects.
function MakeDocumentMetadata(myStorage, myPublisherReleaseDate, myPlayerUrl) {
    this.storage = myStorage;
    this.publisherReleaseDate = myPublisherReleaseDate;
    this.playerUrl = myPlayerUrl;
}
function MakePublicationMetadata(myPublicationName) {
    this.publicationName = myPublicationName;
}

function MakeStructuralMetadata(myWidth,myHeight,myFormat,myResolution,myDuration,myMimeType) {
    this.width = myWidth;
    this.height= myHeight;
    this.format = myFormat;
    this.resolution = myResolution;
    this.duration = myDuration;
    this.mimetype = myMimeType;
}
function MakeSubjectMetadata(myFeatureName) { 
    this.featureName = myFeatureName;
}

function MakeRelatedContentMetadata(myRelatedContents) {
    this.relatedContents = myRelatedContents;
}

function MakeRelatedContent(myId, myType, myRefId, myRefType) {
    this.id=myId;
    this.type=myType;
    this.refId=myRefId;
    this.refType=myRefType;
}

function MakeProcessingMetadata() { }

// Metadata element object (made up of the sub-types).
function MakeMetadata(myDocumentMetadata, myPublicationMetadata, myStructuralMetadata, mySubjectMetadata, myRelatedContentMetadata, myProcessingMetadata) {
    this.documentMetadata = myDocumentMetadata;
    this.publicationMetadata = myPublicationMetadata;
    this.structuralMetadata = myStructuralMetadata;
    this.subjectMetadata = mySubjectMetadata;
    this.relatedContentMetadata = myRelatedContentMetadata;
    this.processingMetadata = myProcessingMetadata;
}

// Core element object
function MakeCore(mySummaryHeadline, myAbstract, myHeadline, myAuthor, myCopyright, myDateLine, myDateTime, myType, myCaption) {
    this.summaryHeadline = mySummaryHeadline;
    this.docAbstract = myAbstract;
    this.headline = myHeadline;
    this.author = myAuthor;
    this.copyright = myCopyright;
    this.dateLine = myDateLine;
    this.dateTime = myDateTime;
    this.type = myType;
    this.caption = myCaption;
}

function MakePhoto (myURL,myWidth,myHeight,myAlt,myCaption) {
    this.url = myURL;
    this.width = myWidth;
    this.height = myHeight;
    this.alt = myAlt;
    this.caption = myCaption;
}

// Article element object
function MakeArticle(myTitle, myMetadata, myCore, myBody, myPhoto) {
    this.title = myTitle;
    this.metadata = myMetadata;
    this.core = myCore;
    this.body = myBody;
    this.photo = myPhoto;
}

//Segment element object
function MakeSegment (myId,myType,myIndex,myMetadata) {
    this.id = myId;
    this.type = myType;
    this.Index = myIndex;
    this.metadata = myMetadata;
}

// Content element object
function MakeContent(myId, myRevisionId, myType, myLanguage, myRole, myArticle) {
    this.id = myId;
    this.revisionId = myRevisionId;
    this.type = myType;
    this.language = myLanguage;
    this.role = myRole;
    this.article = myArticle;
}

// Content-set master element object
function MakeContentSet(myId, myName, myLanguage, myPublishedDate, myContents) {
    this.id = myId;
    this.name = myName;
    this.language = myLanguage;
    this.publishedDate = myPublishedDate;
    this.contents = myContents;
}


{ // This block intializes the data objects.
var Index = -1;
if (typeof SMContentSet == "undefined") {
var SMContentSet = new Array();
}
var contents = new Array();

documentMetadata = new MakeDocumentMetadata('internal', '2007-08-30T08:47:00','');
publicationMetadata = new MakePublicationMetadata('Xinhua News Agency');


structuralMetadata = new MakeStructuralMetadata(0,0,'','','','');
subjectMetadata = new MakeSubjectMetadata('');
var relatedContents = new Array();

relatedContentMetadata = new MakeRelatedContentMetadata(relatedContents);
processingMetadata = new MakeProcessingMetadata();
metadata = new MakeMetadata(
documentMetadata,
publicationMetadata,
structuralMetadata,
subjectMetadata,
relatedContentMetadata,
processingMetadata);
core = new MakeCore(
'China Strives to Raise Funds for Low-Income Housing',
'BEIJING, Aug 30, 2007 (Xinhua via COMTEX) -- China will try hard to fund housing for low-income urbanities as funding remains a problem, said Qi Ji, deputy minister of construction on Thursday.',
'China Strives to Raise Funds for Low-Income Housing',
'',
'Copyright 2007 XINHUA NEWS AGENCY.',
'BEIJING, Aug 30, 2007 (Xinhua via COMTEX)',
'',
'',
'');

title = 'China Strives to Raise Funds for Low-Income Housing';

article = new MakeArticle(title, metadata, core, '','');




contents[++Index] = new MakeContent('comtex_2007_08_30_xh_0000-6697-china-house-low-income', '01188495520921', 'article', 'en-US',    '', article);



documentMetadata = new MakeDocumentMetadata('internal', '2007-08-30T04:05:00','');
publicationMetadata = new MakePublicationMetadata('Xinhua Economic News');


structuralMetadata = new MakeStructuralMetadata(0,0,'','','','');
subjectMetadata = new MakeSubjectMetadata('');
var relatedContents = new Array();

relatedContentMetadata = new MakeRelatedContentMetadata(relatedContents);
processingMetadata = new MakeProcessingMetadata();
metadata = new MakeMetadata(
documentMetadata,
publicationMetadata,
structuralMetadata,
subjectMetadata,
relatedContentMetadata,
processingMetadata);
core = new MakeCore(
'China to Found Industrialization Bases for Renewable Energy in Buildings',
'BEIJING, Aug 30, 2007 (Xinhua via COMTEX) -- Chinese Ministry of Construction has decided to designated a number of industrialization bases for application of renewable energy in buildings in the 11 Five-Year Plan period (2006-2010), according the Center...',
'China to Found Industrialization Bases for Renewable Energy in Buildings',
'',
'Copyright 2007 Xinhua News Agency.',
'BEIJING, Aug 30, 2007 (Xinhua via COMTEX)',
'',
'',
'');

title = 'China to Found Industrialization Bases for Renewable Energy in Buildings';

article = new MakeArticle(title, metadata, core, '','');




contents[++Index] = new MakeContent('comtex_2007_08_30_xe_0000-4933-KEYWORD_Missing', '01188495520921', 'article', 'en-US',    '', article);



documentMetadata = new MakeDocumentMetadata('internal', '2007-08-29T05:21:00','');
publicationMetadata = new MakePublicationMetadata('Asiaport Daily News');


structuralMetadata = new MakeStructuralMetadata(0,0,'','','','');
subjectMetadata = new MakeSubjectMetadata('');
var relatedContents = new Array();

relatedContentMetadata = new MakeRelatedContentMetadata(relatedContents);
processingMetadata = new MakeProcessingMetadata();
metadata = new MakeMetadata(
documentMetadata,
publicationMetadata,
structuralMetadata,
subjectMetadata,
relatedContentMetadata,
processingMetadata);
core = new MakeCore(
'China to Build Regional Air Network',
'BEIJING, Aug 29, 2007 (SinoCast via COMTEX) -- Chinese airlines are cooperating with local government in building regional air route network, which will be linked with main route network in the country.',
'China to Build Regional Air Network',
'',
'Copyright (C) 2007 SinoCast, All Rights Reserved',
'BEIJING, Aug 29, 2007 (SinoCast via COMTEX)',
'',
'',
'');

title = 'China to Build Regional Air Network';

article = new MakeArticle(title, metadata, core, '','');




contents[++Index] = new MakeContent('comtex_2007_08_29_as_0000-4798-KEYWORD_Missing', '01188495220890', 'article', 'en-US',    '', article);



documentMetadata = new MakeDocumentMetadata('internal', '2007-08-29T04:29:00','');
publicationMetadata = new MakePublicationMetadata('Xinhua Economic News');


structuralMetadata = new MakeStructuralMetadata(0,0,'','','','');
subjectMetadata = new MakeSubjectMetadata('');
var relatedContents = new Array();

relatedContentMetadata = new MakeRelatedContentMetadata(relatedContents);
processingMetadata = new MakeProcessingMetadata();
metadata = new MakeMetadata(
documentMetadata,
publicationMetadata,
structuralMetadata,
subjectMetadata,
relatedContentMetadata,
processingMetadata);
core = new MakeCore(
'Caterpillar to Produce Diesel Engine in East China',
'BEIJING, Aug 29, 2007 (Xinhua via COMTEX) -- Caterpillar Co, world leading manufacturers of construction and mining equipment and diesel and natural gas engines, has announced that it will produce small and medium size diesel engines in Wuxi City in east...',
'Caterpillar to Produce Diesel Engine in East China',
'',
'Copyright 2007 Xinhua News Agency.',
'BEIJING, Aug 29, 2007 (Xinhua via COMTEX)',
'',
'',
'');

title = 'Caterpillar to Produce Diesel Engine in East China';

article = new MakeArticle(title, metadata, core, '','');




contents[++Index] = new MakeContent('comtex_2007_08_29_xe_0000-4510-KEYWORD_Missing', '01188495520921', 'article', 'en-US',    '', article);



documentMetadata = new MakeDocumentMetadata('internal', '2007-08-28T20:43:20','');
publicationMetadata = new MakePublicationMetadata('BBC Monitoring Asia Pacific');


structuralMetadata = new MakeStructuralMetadata(0,0,'','','','');
subjectMetadata = new MakeSubjectMetadata('');
var relatedContents = new Array();

relatedContentMetadata = new MakeRelatedContentMetadata(relatedContents);
processingMetadata = new MakeProcessingMetadata();
metadata = new MakeMetadata(
documentMetadata,
publicationMetadata,
structuralMetadata,
subjectMetadata,
relatedContentMetadata,
processingMetadata);
core = new MakeCore(
'Construction Begins on New Railway in Northeast China',
'Changchun, Aug. 28 (Xinhua) - Construction has begun on a passenger railway line running through northeast China, including the provinces of Liaoning, Jilin and Heilongjiang, as part of the rejuvenation of the country\'s old industrial base.',
'Construction Begins on New Railway in Northeast China',
'Xinhua news agency, Beijing, in English 0858 28 Aug 07',
'(C) 2007 BBC Monitoring Asia Pacific. via ProQuest Information and Learning Company; All Rights Reserved',
'',
'',
'',
'');

title = 'Construction Begins on New Railway in Northeast China';

article = new MakeArticle(title, metadata, core, '','');




contents[++Index] = new MakeContent('bhsuper_2007_08_28_BMAP_0000-0594-KEYWORD_Missing', '01188495220890', 'article', 'en-US',    '', article);



documentMetadata = new MakeDocumentMetadata('internal', '2007-08-28T05:10:33','');
publicationMetadata = new MakePublicationMetadata('Associated Press');


structuralMetadata = new MakeStructuralMetadata(0,0,'','','','');
subjectMetadata = new MakeSubjectMetadata('');
var relatedContents = new Array();

relatedContentMetadata = new MakeRelatedContentMetadata(relatedContents);
processingMetadata = new MakeProcessingMetadata();
metadata = new MakeMetadata(
documentMetadata,
publicationMetadata,
structuralMetadata,
subjectMetadata,
relatedContentMetadata,
processingMetadata);
core = new MakeCore(
'China Starts Work on US$12.2-Billion Railway',
'BEIJING - Construction has started on a US$12.2 billion passenger railway line running through northeast China as part of a bid to rejuvenate the country\'s old industrial base, state media reported Tuesday.',
'China Starts Work on US$12.2-Billion Railway',
'',
'Copyright 2007 The Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed.',
'',
'',
'',
'');

title = 'China Starts Work on US$12.2-Billion Railway';

article = new MakeArticle(title, metadata, core, '','');




contents[++Index] = new MakeContent('ap_2007_08_28_ap_worldstream_english_D8R9VA0O1_news_ap_org_anpa', '01188495520921', 'article', 'en-US',    '', article);



documentMetadata = new MakeDocumentMetadata('internal', '2007-08-28T04:56:00','');
publicationMetadata = new MakePublicationMetadata('Xinhua Economic News');


structuralMetadata = new MakeStructuralMetadata(0,0,'','','','');
subjectMetadata = new MakeSubjectMetadata('');
var relatedContents = new Array();

relatedContentMetadata = new MakeRelatedContentMetadata(relatedContents);
processingMetadata = new MakeProcessingMetadata();
metadata = new MakeMetadata(
documentMetadata,
publicationMetadata,
structuralMetadata,
subjectMetadata,
relatedContentMetadata,
processingMetadata);
core = new MakeCore(
'New Road Across China\'s Largest Desert to Open this Year',
'URUMQI, Aug 28, 2007 (Xinhua via COMTEX) -- Construction of a second road across the Taklimakan desert in northwest China\'s Xinjiang Uygur Autonomous Region has entered the final stage, and its builders said on Tuesday the 424-km highway will open to...',
'New Road Across China\'s Largest Desert to Open this Year',
'',
'Copyright 2007 Xinhua News Agency.',
'URUMQI, Aug 28, 2007 (Xinhua via COMTEX)',
'',
'',
'');

title = 'New Road Across China\'s Largest Desert to Open this Year';

article = new MakeArticle(title, metadata, core, '','');




contents[++Index] = new MakeContent('comtex_2007_08_28_xe_0000-6593-china-xinjiang-desert_hi', '01188495520921', 'article', 'en-US',    '', article);






contentSetId = '2581_ChinaNews';
contentSetName = 'ChinaNews';
contentSetLanguage = '';
contentSetPublishedDate = '2007-08-30T12:39:44';
id = '2581_ChinaNews';
contentType = '';
} // End data initialization block.
if (typeof ContentIndex == "undefined") {
ContentIndex = -1;
}
SMContentSet[++ContentIndex] = new MakeContentSet(contentSetId, contentSetName, contentSetLanguage, contentSetPublishedDate, contents);
