// JavaScript Document
var article_slider = "";
var articles_first_page = 3;
var articles_per_page = 10;
var page = articles_per_page;
var call = 1;
var iheight = 0;
var newheight = 0;
var active_request = false;

if(typeof parkside == "undefined") var parkside = new Object();
if(typeof parkside.article_slide == "undefined") parkside.article_slide = new Object();

// Constructor
parkside.article_slide = function() {
}

/// Class members
parkside.article_slide.prototype = {
/// Properties
	article_slide_results: null,
	
/// Methods
	request: function(params) 
	{		
		if( typeof http == "undefined" )
		{
			alert("JSMX not included!");
			return;
		}	
		var url = "custom/modules/article/article.cfc?method=getArticlesByAjaxCall";
		var response_function = this.response_ViewMoreArticles;
				
		switch(params.type)
		{
			case "school":
			{
				url = "custom/modules/school/school.cfc?method=getSchoolsByAjaxCall";
				response_function = this.response_ViewMoreSchools;
				break;
			}
			case "company":
			{
				url = "custom/modules/company/company.cfc?method=getCompaniesByAjaxCall";
				response_function = this.response_ViewMoreCompanies
				break;
			}
		}
		
		active_request = true;		
		http("POST", url, response_function, params); //notice the third argument = list_response. This is the callback function below.
	}
	,
	response_ViewMoreArticles: function(obj) //callback functions always take one argument. This is the result passed back from the server.
	{ 	
		if(obj !== "undefined") 
		{
			if(as.length > 0)
			{
				document.getElementById('articles').innerHTML += '<div id="articles_' + call + '" style="display:block;overflow:hidden;"><\/div>';
				var list = document.getElementById('articles_' + call);
				for(var i = 0; i < as.length; i++)
				{
					if(as[i] == "x_last_x")
					{
						document.getElementById('view_more_articles').style.display = "none";	
					}
					else
					{
						list.innerHTML += as[i];
					}
				}
				newheight = document.getElementById('articles').offsetHeight;	
				document.getElementById('articles_' + call).style.height = "0px";
				
				if(article_slider != "")
				{
					window.clearInterval(article_slider);
					article_slider = "";
				}
				/*window.location.href = '#articles_' + call;*/
				article_slider = window.setInterval(slide = function() { slideViewArea("articles"); }, 1);
			}
			else
			{
				document.getElementById('view_more_articles').style.display = "none";
			}
		}	
	}
	,
	response_ViewMoreSchools: function(obj) //callback functions always take one argument. This is the result passed back from the server.
	{ 	
		if(obj !== "undefined") 
		{
			if(as.length > 0)
			{
				document.getElementById('schools').innerHTML += '<div id="schools_' + call + '" style="display:block;overflow:hidden;"><\/div>';
				var list = document.getElementById('schools_' + call);
				for(var i = 0; i < as.length; i++)
				{
					if(as[i] == "x_last_x")
					{
						document.getElementById('view_more_articles').style.display = "none";	
					}
					else
					{
						list.innerHTML += as[i];
					}
				}
				newheight = document.getElementById('schools').offsetHeight;	
				document.getElementById('schools_' + call).style.height = "0px";
				
				if(article_slider != "")
				{
					window.clearInterval(article_slider);
					article_slider = "";
				}
				/*window.location.href = '#articles_' + call;*/
				article_slider = window.setInterval(slide = function() { slideViewArea("schools"); }, 1);
			}
			else
			{
				document.getElementById('view_more_articles').style.display = "none";
			}
		}	
	}
	,
	response_ViewMoreCompanies: function(obj) //callback functions always take one argument. This is the result passed back from the server.
	{ 	
		if(obj !== "undefined") 
		{
			if(as.length > 0)
			{
				document.getElementById('companies').innerHTML += '<div id="companies_' + call + '" style="display:block;overflow:hidden;"><\/div>';
				var list = document.getElementById('companies_' + call);
				for(var i = 0; i < as.length; i++)
				{
					if(as[i] == "x_last_x")
					{
						document.getElementById('view_more_articles').style.display = "none";	
					}
					else
					{
						list.innerHTML += as[i];
					}
				}
				newheight = document.getElementById('companies').offsetHeight;	
				document.getElementById('companies_' + call).style.height = "0px";
				
				if(article_slider != "")
				{
					window.clearInterval(article_slider);
					article_slider = "";
				}
				/*window.location.href = '#articles_' + call;*/
				article_slider = window.setInterval(slide = function() { slideViewArea("companies"); }, 1);
			}
			else
			{
				document.getElementById('view_more_articles').style.display = "none";
			}
		}	
	}
}

function slideViewArea(type)
{
	var cprefix = type;
	var article_area = document.getElementById(cprefix + '_' + call);
	var current_height = Math.round(article_area.style.height.substring(0, article_area.style.height.length-2));	
	var px = 30;

	if(newheight > iheight)
	{
		if((newheight - iheight) < 30)
		{
			px = newheight - iheight;
		}
		article_area.style.height = current_height + px + "px";
		iheight += px;
	}
	else
	{
		window.clearInterval(article_slider);
		document.getElementById(cprefix + '_' + call).style.display = "block";
		active_request = false;
	}
}

parkside.article_slide = new parkside.article_slide();

function initViewVars(articles_per_page, articles_first_page, type)
{	
	if(call == 1)
	{
		if(type == "school")
			iheight = document.getElementById('schools').offsetHeight;
		else if(type == "company")
			iheight = document.getElementById('companies').offsetHeight;
		else
			iheight = document.getElementById('articles').offsetHeight;
		this.articles_per_page = articles_per_page;
		this.articles_first_page = articles_first_page;
		page = articles_per_page;
	}	
}

function viewMoreArticles(type, tag_id, category_id)
{
	if(active_request)
	{
		return;	
	}		

	var params = new Object();
	params.limit = articles_per_page;

/*	if(page > 0)
	{
		params.offset = (page - 3);
		page += articles_per_page;
	}*/
	if(call == 1)
	{
		if(articles_first_page > 0)
			params.offset = articles_first_page;
		else
			params.offset = articles_per_page;
		page = params.offset;
	}
	else
	{
		page += articles_per_page;
		params.offset = page;
	}
	params.type = type;
	if(tag_id > 0)
		params.tag_id = tag_id;
	if(category_id > 0)
		params.category_id = category_id;
	else
		params.category_id = -1;
	
	if(type == "school")
	{
		params.district_id = tag_id;
		if(params.district_id < 1)
			params.district_id = -1;
	}
		
	params.type = type;
	
	call++;
	
	parkside.article_slide.request(params);	
}