//------------------------------------------------------------------------------------
function strTrim(tmpStr)
{
	tmpStr = tmpStr.replace(/^\s+/,"");//remove leading
	tmpStr = tmpStr.replace(/\s+$/,"");//remove trailing
	return tmpStr;
}
//------------------------------------------------------------------------------------
function trimFields()
{
	for(var i=0; i < obj.elements.length; i++)
	{
		if(obj.elements[i].type == "text" || obj.elements[i].type == "textarea" || obj.elements[i].type == "password")
		{
			obj.elements[i].value = strTrim(obj.elements[i].value);
		}
	}
}
//------------------------------------------------------------------------------------
//Function to validate email
//-----------------------------------------------------------------------------------
function chkEmail(tmpStr)
{
	var email_pat = /^[a-z][a-z0-9_\.\-]*[a-z0-9]@[a-z0-9]+[a-z0-9\.\-_]*\.[a-z]+$/i;
	return(email_pat.test(tmpStr));
}
//------------------------------------------------------------------//
//Generic AJAX object for all types of HTTP get/post work			//
//Author: Debabrata Kar (dk.webtenet@gmail.com)						//
//Usage:															//
//	var ajax = new AJAX();											//
//	var arrParam = new Array();										//
//	arrParam['name1'] = 'value1';									//
//	arrParam['name2'] = 'value2';									//
//	arrParam['name3'] = 'value3';									//
//	ajax.getRequest(url, arrParam, responseHandler);				//
//	OR																//
//	ajax.postRequest(url, arrParam, responseHandler);				//
//																	//
//	NOTE: You do not need to escape() or encodeURIComponent() the	//
//	parameter names or values. AJAX will do it on its own.			//
//	You need to define responseHandler() function that will handle	//
//	response back from the server, be it XML or anything else		//
//------------------------------------------------------------------//
//The AJAX object
function AJAX()
{
	//Private variables (properties)
	var __httpRequest = null;
	var __callbackFunc = null;

	//Private method: __createHttpRequest()
	var __createHttpRequest = function()
	{
		if(window.XMLHttpRequest) //Mozilla, Safari etc
		{
			__httpRequest = new XMLHttpRequest();
		}
		else if(window.ActiveXObject) //IE
		{
			try
			{
				__httpRequest = new ActiveXObject("MSXML2.XMLHTTP");
			}
			catch (e)
			{
				try
				{
					__httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e)
				{
					//Do whatever you need to do here
					alert("AJAX cannot be used with your browser!");
				}
			}
		}
	}

	//Private method: __createParameters(arr)
	var __createParameters = function(arr)
	{
		var parameters = ""; //Initialize
		for(x in arr)
		{
			var pName = encodeURIComponent(x);
			var pVal = encodeURIComponent(arr[x]);
			parameters = (parameters == "")?pName+'='+pVal:parameters+'&'+pName+'='+pVal;
		}
		return parameters;
	}

	//Private method: __handleResponse()
	var __handleResponse = function()
	{
		if(__httpRequest.readyState == 4)
		{
			__callbackFunc(__httpRequest.responseText);
		}
	}

	//Public method: getRequest(url, arrParam, callbackFunc)
	this.getRequest = function(url, arrParam, callbackFunc)
	{
		__createHttpRequest() //recreate ajax object to defeat cache problem in IE
		__callbackFunc = callbackFunc;
		if(__httpRequest)
		{
			var param = __createParameters(arrParam);
			__httpRequest.onreadystatechange = __handleResponse;
			//Include a random number to defeat IE cache problem
			__httpRequest.open('GET', url+"?ajaxhash="+Math.random()+'&'+param, true);
			__httpRequest.send(null)
		}
	}

	//Public method: postRequest()
	this.postRequest = function(url, arrParam, callbackFunc)
	{
		__createHttpRequest() //recreate ajax object to defeat cache problem in IE
		__callbackFunc = callbackFunc;
		if (__httpRequest)
		{
			var param = __createParameters(arrParam);
			__httpRequest.onreadystatechange = __handleResponse;
			__httpRequest.open('POST', url, true);
			__httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
			__httpRequest.setRequestHeader("Content-length", param.length);
			__httpRequest.setRequestHeader("Connection", "close");
			__httpRequest.send(param);
		}
	}
}
//--------------------------------------
//Get Ajax calendar
//------------------------------------
function getAjaxCalendar(monthName, yearName)
{
	var ajax = new AJAX();
	var arrParam = new Array();
	arrParam['month'] = monthName;
	arrParam['year'] = yearName;
	ajax.getRequest("get_calendar.php", arrParam, showCalendar);
	return false;
}

function showCalendar(retVal)
{
	var arrTemp = retVal.split('<==>');
	document.getElementById('ajax_event_calendar').innerHTML = arrTemp[0];
	document.getElementById('news_event_blk').innerHTML = arrTemp[1];
}
//===============================================
//==========  Refresh Captcha  ==================
//===============================================
function refreshCaptcha(imgid)
{
	var newimg = new Image();
	newimg.src = 'inc/captcha/captcha.php?hash='+parseInt(Math.random() * 10000000000);
	//alert(newimg.src);
	newimg.onload = function(){document.getElementById(imgid).src = newimg.src;}
}
function toggleWeather()
{
	if($("#weather_detail").css('width') == '0px')
		$("#weather_detail").animate({width: '265px'}, 500, function(){$('#btn_wr').attr('src', 'img/btn_wr_rht.png')});
	else
		$("#weather_detail").animate({width: '0px'}, 500, function(){$('#btn_wr').attr('src', 'img/btn_wr_lft.png')});
}

//------------------------------------------------------------------------------------
// Function to open in a new window
//------------------------------------------------------------------------------------
function newWindow(pageName, w, h)
{
	w = w || '570';
	h = h || '550';
	window.open(pageName, '', 'width='+w+',height='+h+',toolbar=0,menubar=0,location=0,left=25,top=25');
}
//====================================================================
//-------------------   Validate Search   ----------------------------
//====================================================================
function validateSearch()
{
	if(searchObj.search.value == 'Search...' || searchObj.search.value == '')
	{
		alert("Please enter a keywords value to search.");
		searchObj.search.focus();
		return false;
	}
	searchObj.action = "search_page.html";
	searchObj.submit();

}
function validateNewsletter()
{

		//trimFields();
		var obj = document.frmNewsletter;
		obj.email.value = strTrim(obj.email.value);
		if(obj.email.value == "")
		{
			alert("Please enter your Email Address.");
			obj.email.focus();
			return false;
		}
		if(!chkEmail(obj.email.value))
		{
			alert("Please enter a valid Email Address !");
			obj.email.focus();
			obj.email.select();
			return false;
		}
		isSelected = false;
		for(var i = 0; i < obj.elements['subscription_type[]'].length; i++)
		{
			if(obj.elements['subscription_type[]'][i].checked)
			{
				isSelected = true;
				break;
			}
		}
		if(!isSelected)
		{
			alert("Please check at least one Newsletter from the list.");
			obj.elements['subscription_type[]'][0].focus();
			return;
		}
		var email = obj.email.value;
		var params = $('#frmNewsletter').serialize();
		$.ajax({
		  type: 'GET',
		  url: 'register_subscription.php',
		  data: params,
		  success: function(data){
			  alert(data);
		    obj.email.value = '';
		    hideNewsletterBox();
		}
		});
}
function showNewsletterPopup()
{
	$('#blank_blk').fadeIn();
	$('#subscription_blk').fadeIn();
}
function hideNewsletterBox()
{
	$('#blank_blk').fadeOut();
	$('#subscription_blk').fadeOut();
}
function checkSubscription(idx)
{
	document.getElementById('subscription_type'+idx).checked = true;
	document.getElementById('radio_img1').src = 'img/radio.png';
	document.getElementById('radio_img2').src = 'img/radio.png';
	document.getElementById('radio_img'+idx).src = 'img/radio_o.png';
}
