MyXssWidget = new function() {
	
	var gBaseURL = 'http://www.businessspectator.com.au/bs.nsf/';
	var gWidgetId = 'fta'; 
	var gWidgetStatisticId = "";
	var gFullTopicList = [ 'Top Stories', "Advertising & Marketing", "Agribusiness", "Appointments", "Automotive", "Aviation", "BHP Billiton Announcement", "Climate Change", "Construction & Engineering", "Director dealings", "Earnings Season Results", "Economy", "Election 2010", "Federal Budget", "Financial Markets", "Financial Services", "Food & Beverages", "Health & Pharmaceuticals", "HR & Education", "Infrastructure", "Insurance", "IT", "Leisure & Gaming", "Manufacturing", "Media & Internet", "Non-Industry", "Original Text", "Politics & IR", "Professional Services", "Property", "Resources & Energy", "Retail", "Shareholder Notices", "Spring Carnival", "Telecommunications", "The Ashes 2009", "Transport & Logistics", "US Election", 'Alan Kohler', 'Robert Gottliebsen', 'Stephen Bartholomeusz'];
	var gSuspendedTopicList = [ 'Original Text', 'US Election', 'Federal Budget', 'Earnings Season Results', 'BHP Billiton Announcement' ];
	var gInitiateTopic = 'Financial Services';
	
	var gAppearance = {layout : 'fta', skin : '1' , loadinganimation: '1'};
	var gDate = {display : '' , format : '1'};
	var gMaxStories = 30;
	var gTitle = "y";
	
	var gWidgetDivContainer = "bswidget_container";
	var gTitleDivContainer = "bswidget_title_div";
	var gToolboxDivContainer = "bswidget_toolbox";
	var gLogoDivContainer = "bswidget_logo";
	var gFeedDivContainer = "bs_widget_div";
	
	
	//To get the Staticstic Id which will be used to identify where the traffic came form
	requestStatisticId = function() {
		var _statisticId;
		
		switch(gWidgetId)
		{
			case 'fta':
				_statisticId = 'wid1';
				break;
			case 'ceoforum':
				_statisticId =  'wid2';
				break;
			case 'rmit':
				_statisticId = 'wid3';
				break;			
			default:
				_statisticId = 'wid_gen';
				break;
		}
		return (_statisticId);
	}
	
	//To get the URL for the loading animation based on the global setting
	requestLoading = function() {
		var _loadingAnimationURL;
		switch (gAppearance['loadinganimation'])
		 {
			case 1: 
				_loadingAnimationURL = gBaseURL + 'widget/loading.gif';
				break;
			default:
				_loadingAnimationURL = gBaseURL + 'widget/loading.gif';
				break;
		}
		return _loadingAnimationURL;
	}
	//To get the customised Topic List for display on the drop down topic seleciton based on the widget 
	requestTopicList = function() {
		var _topicList = gFullTopicList;
		var _localSuspendedTopicList=[ ];
		var _SuspendedTopicList=[ ];
		
		switch (gWidgetId) 
		{
			case 1:
				_localSuspendedTopicList = [ ];
				break;
			default:
				_localSuspendedTopicList = [ ];
				break;
		}
		
		_SuspendedTopicList = gSuspendedTopicList.concat(_localSuspendedTopicList);
		
		for ( var i=0; i <=_topicList.length; i++)
		{	
			for (var j=0; j<=_SuspendedTopicList.length; j++)
			{
				if (_topicList[i] == _SuspendedTopicList[j])
				{
					_topicList.splice(i, 1);
				}
			}
		}
		return _topicList;
	}
	//Write the drop down topic list
	produceTopicList = function() {
		var _topicList = requestTopicList();
		
		for (var i in _topicList)
		{
 			if (_topicList[i] != gInitiateTopic)
			{
				document.write("<option value='" + _topicList[i] + "'>" + _topicList[i] + "</option>");
			}
			else
			{
				document.write("<option value='" + _topicList[i] + "' selected>" + _topicList[i] + "</option>");
			}
		}
	}
	//Get the stylesheet
	 requestStylesheet = function() 
	{
		if (gAppearance['layout'] == "fta")
   	 	{
			switch (gAppearance['skin'])
			{
    				case 1:
					stylesheet_url = gBaseURL + 'widget_fta1.css';
					break;
				default:
					stylesheet_url = gBaseURL + 'widget_fta1.css';
					break;
			}
		}
     		else if (gAppearance['layout'] == "rmit")
     		{
			switch (gAppearance['skin'])
			{
    				case 1:
					stylesheet_url = gBaseURL + 'xss_widget.css';
					break;
				default:
					stylesheet_url = gBaseURL + 'xss_widget.css';
					break;
			}
    	 	}
   		else if (gAppearance['layout']== "ceoforum")
  		{
			switch (gAppearance['skin'])
			{
    				case 1:
					stylesheet_url = gBaseURL + 'widget/widget_ceoforum1.css';
					break;
				default:
					stylesheet_url = gBaseURL + 'widget/widget_ceoforum1.css';
					break;
			}
    		}
     		else
    		{
			switch (gAppearance['skin'])
			{
    				case 1:
					stylesheet_url = gBaseURL + 'xss_widget.css';
					break;
				default:
					stylesheet_url = gBaseURL + 'xss_widget.css';
					break;
			}
		}
    		stylesheet = document.createElement("link");
		stylesheet.rel = "stylesheet";
		stylesheet.type = "text/css";
		stylesheet.href = stylesheet_url;
		stylesheet.media = "all";
		document.lastChild.firstChild.appendChild(stylesheet);
 	}
	
	
	//Get the container of the widget
	requestLayout = function()
	{
		if (gWidgetId == "rmit")
     		 {
			if (gAppearance['layout'] == "rmit")
			{
				document.write("<div id='" + gWidgetDivContainer + "'>");
				document.write("<div id='" + gTitleDivContainer + "'></div>");
				document.write("<div id='sp_line'></div>");
		 		document.write("<div id='" + gFeedDivContainer + "' style='display: none'></div>");
				document.write("</div>");
				document.write("<div id='" + gLogoDivContainer + "' align='right'><img src='" + gBaseURL + "widget/bs_logo.jpg' width='412' height='47' /></div>");
			 	document.write("<div id='" + gToolboxDivContainer + "'>");
 				document.write("<label for='ind_cat'>Industry Category :</label>");
		 		document.write("<select name='ind_cat' id='ind_cat' onchange='MyXssWidget.ChangeStories(this.value)'>");
 				produceTopicList();
				document.write("</select><br /> ");
 				document.write("<label for='searchkey'>Search :</label>");
				document.write("<input type='text' name='bswidget_searchkey' id='bswidget_searchkey' />&nbsp;<input type='submit' name='button' id='button' value='Go' onclick='MyXssWidget.SearchStories()' />");
				document.write("</div>");
			}
      		}
		else if(gWidgetId == "fta")
		{
			if (gAppearance['layout'] == "fta")
			{
				document.write("<div id='" + gWidgetDivContainer + "'>");
				document.write("<div id='" + gTitleDivContainer + "'></div>");
				document.write("<div id='sp_line'></div>");
	 			document.write("<div id='" + gFeedDivContainer + "' style='display: none'></div>");
				document.write("</div>");
				document.write("<div id='" + gLogoDivContainer + "' align='right'><img src='" + gBaseURL + "widget/FTA/tail.png' width='100' height='13' /><img src='" + gBaseURL + "widget/FTA/bs_logo.png' width='109' height='13' /></div>");
			 	document.write("<div id='" + gToolboxDivContainer + "'>");
		 		document.write("<select name='ind_cat' id='ind_cat' onchange='MyXssWidget.ChangeStories(this.value)'>");
			 	produceTopicList();
				document.write("</select><br />");
				document.write("</div>");
			}
		}	
		else if(gWidgetId == "ceoforum")
		{
			if (gAppearance['layout'] == "ceoforum")
			{
				document.write("<div id='" + gWidgetDivContainer + "'>");
				document.write("<div id='" + gLogoDivContainer + "' align='right'>&nbsp;</div>");
				document.write("<div id='sp_line'></div>");
			 	document.write("<div id='" + gFeedDivContainer + "' style='display: none'></div>");
			 	document.write("<div id='" + gToolboxDivContainer + "'>");
			 	document.write("<label for='ind_cat'>Industry :</label>");
			 	document.write("<select name='ind_cat' id='ind_cat' onchange='MyXssWidget.ChangeStories(this.value)'>");
				produceTopicList();
				document.write("</select><br /> ");
			 	document.write("<label for='searchkey'>Search :</label>");
				document.write("<input type='text' name='bswidget_searchkey' id='bswidget_searchkey' />&nbsp;<input type='submit' name='button' id='button' value='Go' onclick='MyXssWidget.SearchStories()' />");
				document.write("</div>");
				document.write("</div>");
			}
			else
			{
				alert("Layout is not ceoforum");
			}
		}
	}
	//Request data from the server
  	requestContent = function(var_cat)
	{
		var rndnumber =Math.floor(Math.random()*999999999);
    		var script = document.createElement('script');
    		script.src = gBaseURL + "widget_getcontent.js?readform&cat=" +var_cat+ "&no=" + 4+ "&date=" + "&id=" + rndnumber;
    		document.getElementsByTagName('head')[0].appendChild(script);
	}
	
	ChangeDatetimeFormat = function (publicationDate, todayDate)
	{
		var _day = parseInt(publicationDate.substring(0, 2));
		var _month = parseInt(publicationDate.substring(3,5)) - 1;
		var _year = parseInt(publicationDate.substring(6,10));
		
		var _today_day = parseInt(todayDate.substring(0, 2));
		var _today_month = parseInt(todayDate.substring(3,5)) - 1;
		var _today_year = parseInt(todayDate.substring(6,10));
		var _time = publicationDate.substring(10,16);
		var _meridiem = publicationDate.substring(19, 22);
		
		var _today = new Date();
		_today.setFullYear(_today_year, _today_month, _today_day);
		var _publicationDate = new Date();
		_publicationDate.setFullYear(_year, _month, _day);
		
		if (_today > _publicationDate)
		{
			return publicationDate;
		}
		else
		{
			return _time + " " + _meridiem;
		}
	}
		
	//Function for retrieve the server response and use it to produce news feed on the widget	
	this.serverResponse = function(articleLink, articleHeading, articleAuthor, arrDate, todayDate) 
	{
		
		if (!articleHeading) return;
	
		var _data="";
		var _statisticId;
		if (gDate.display == 'y')
		{
			for (var i in articleHeading)
			{
				_data = _data + "<li><a href='"  +articleLink[i] + "&src=" + requestStatisticId() + "' target='_blank'><span id='bswidget_heading'>" + articleHeading[i] + "</span></a><span id='bswidget_date'>" + arrDate[i] + "</span><br /><p>&nbsp;</p></li>";
			}
		}
		else
		{
			for (var i in articleHeading)
			{
				_data = _data + "<li><a href='" +articleLink[i] + "&src=" + requestStatisticId() + "' target='_blank'><span id='bswidget_heading' style='width:auto'>" + articleHeading[i] + "</span></a><br /><p></p></li>";
			}
		}
		requestStatisticId();
		var div = document.getElementById(gFeedDivContainer);
		div.innerHTML = "<ul>" +_data + "</ul>";
		div.style.display = "block"; // make element visible
  	}
	//Change the title of the topic and calling the funciton to request data
	this.ChangeStories = function() 
	{
		var div = document.getElementById("bs_widget_div");
 		div.innerHTML = "<div id='aligncenter'><img src='" + requestLoading() + "' width='70' height='14' /><br />Loading . . .</div>";
 		var selectbox = document.getElementById('ind_cat');
 		category = selectbox.options[selectbox.selectedIndex].value;
		if (document.getElementById(gTitleDivContainer))
		{
			var div_title = document.getElementById(gTitleDivContainer);
 			div_title.innerHTML = "<b>News: " + category + "</b>";
		}
 		category = category.replace("&", "_");
		setTimeout('requestContent(category)', 800);
	}
	// Search function
	this.SearchStories = function(menuform)
	{
		var baseurl = "http://www.businessspectator.com.au/bs.nsf/search?searchView&query=" ;
		var querykey = document.getElementById('bswidget_searchkey').value;
		var fullurl = baseurl + "%28%5Bbodyrich%5D+contains+" + querykey + "+or+%5Bbodyhtml%5D+contains+" + querykey + "+or+%5Bprecede%5D+contains+" + querykey + "+or+%5Bheading%5D+contains+" + querykey + " +or+%5BNomAuthor%5D+contains+" + querykey + "%29&SearchOrder=4&count=500&start=1";
		if (querykey.length != 0) {
			window.open(fullurl);
		}
	}
	
 requestStylesheet();
 requestLayout();
 this.ChangeStories();
}
