/*
Strip whitespace from the beginning and end of a string
Input : a string
*/
function trim(str)
{
	return str.replace(/^\s+|\s+$/g,'');
}

/*
Make sure that textBox only contain number
*/
function checkNumber(textBox)
{
	while (textBox.value.length > 0 && isNaN(textBox.value)) {
		textBox.value = textBox.value.substring(0, textBox.value.length - 1)
	}
	
	textBox.value = trim(textBox.value);
/*	if (textBox.value.length == 0) {
		textBox.value = 0;		
	} else {
		textBox.value = parseInt(textBox.value);
	}*/
}

/*
	Check if a form element is empty.
	If it is display an alert box and focus
	on the element
*/
function isEmpty(formElement, message) {
	formElement.value = trim(formElement.value);
	
	_isEmpty = false;
	if (formElement.value == '') {
		_isEmpty = true;
		alert(message);
		formElement.focus();
	}
	
	return _isEmpty;
}

/*
	Set one value in combo box as the selected value
*/
function setSelect(listElement, listValue)
{
	for (i=0; i < listElement.options.length; i++) {
		if (listElement.options[i].value == listValue)	{
			listElement.selectedIndex = i;
		}
	}	
}


//+++++++++++++ Twitter display +++++++++++++++++++++++++++++++//
//To include a page, invoke ajaxinclude("afile.htm") in the BODY of page
//Included file MUST be from the same domain as the page displaying it.

var rootdomain="http://"+window.location.hostname

function ajaxinclude(url) {
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
} 
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.open('GET', url, false) //get page synchronously 
page_request.send(null)
writecontent(page_request)
}

function writecontent(page_request){
if (window.location.href.indexOf("http")==-1 || page_request.status==200)
document.write(page_request.responseText)
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//


function Toggle(item) {
   obj=document.getElementById(item);
   visible=(obj.style.display!="none")
   key=document.getElementById("x" + item);
   
   if (visible) {
     obj.style.display="none";
	
   } else {
     obj.style.display="block";
   }
}

function Expand() {
   divs=document.getElementsByTagName("DIV");
   for (i=0;i<divs.length;i++) {
     divs[i].style.display="block";
     key=document.getElementById("x" + divs[i].id);
   }
}

function Collapse() {
   divs=document.getElementsByTagName("DIV");
   for (i=0;i<divs.length;i++) {
     divs[i].style.display="none";
     key=document.getElementById("x" + divs[i].id);
   }
}
//-->

//multiple selection listing -------------
<!--
function getObject(obj) {
  var theObj;
  if(document.all) {
    if(typeof obj=="string") {
      return document.all(obj);
    } else {
      return obj.style;
    }
  }
  if(document.getElementById) {
    if(typeof obj=="string") {
      return document.getElementById(obj);
    } else {
      return obj.style;
    }
  }
  return null;
}

function Contar(entrada,salida,texto,caracteres) {
  var entradaObj=getObject(entrada);
  var salidaObj=getObject(salida);
  var longitud=caracteres - entradaObj.value.length;
  if(longitud <= 0) {
    longitud=0;
    texto='<span style="color:#3875AD;"> '+texto+' </span>';
    entradaObj.value=entradaObj.value.substr(0,caracteres);
  }
  salidaObj.innerHTML = texto.replace("{CHAR}",longitud);
}

function Add(id,txt,obj)
{
	document.getElementById(id).innerHTML = "<strong>Selected " + txt + ":</strong><br>";
	for (i=0;i<obj.length;i++) 
	{
		if (obj.options[i].selected == true) 
		{
			document.getElementById(id).innerHTML = document.getElementById(id).innerHTML + obj.options[i].text + "<br>";
		}
	}
}

function Clear(id,txt,obj)
{
	for (i=0;i<obj.length;i++) 
	{
	obj.options[i].selected = false;
	}
		document.getElementById(id).innerHTML = "<strong>Selected " + txt + ":</strong><br>";
}

/* ^^^^^^  BASIC DATE  STARTER-SET ^^^^^^ */
/* Today's date */
var date = new Date();
var curr_dy = date.getDate(); 
var curr_mn = date.getMonth();
var curr_yr = date.getFullYear();
var DOMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var lDOMonth = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var moty = ["January","February","March","April","May","June","July","August","September","October","November","December"];

function Calendar_get_daysofmonth(monthNo, p_year) {
	if ((p_year % 4) == 0) {
		if ((p_year % 100) == 0 && (p_year % 400) != 0)
			return DOMonth[monthNo];
		return lDOMonth[monthNo];
	} else
		return DOMonth[monthNo];
}
// -- globals used with calendar and date functions
var calField; var calSpan; var calFormat; var calWknd = false;
/* ^^^^^^ end BASIC DATE  STARTER-SET ^^^^^^ */
function getNextMonth(m,y,incr){
	var ret_arr = new Array();
	ret_arr[0] = m + incr; ret_arr[1] = y;
	if (ret_arr[0] == 12){ ret_arr[0]=0; ret_arr[1]=ret_arr[1]+1; }
	if (ret_arr[0] == -1){ ret_arr[0]=11; ret_arr[1]=ret_arr[1]-1; }
	return ret_arr;
}
function figureDOTW(m,d,y){
	var tDate = new Date(); tDate.setDate(d); tDate.setMonth(m); tDate.setFullYear(y); return tDate.getDay();
}
function scramKids(n){ // this is a basic removeChild loop for removing all childNodes from node n
	var numKids = n.childNodes.length;
	for (i=0;i<numKids;i++) { n.removeChild(n.childNodes[0]); }
}		
function buildCalendar(m,y){
// -- requires: Basic Date Starter-Set, getNextMonth(), figureDOTW(), scramKids()
	m = parseFloat(m); y = parseFloat(y); 
	var dayNo = figureDOTW(m,1,y);
	var monthNo = Calendar_get_daysofmonth(m,y);
	var rowNum = Math.ceil((monthNo+dayNo)/7);
	var dayCount = 1;
	var calTB = document.getElementById('calTbl').getElementsByTagName('tbody')[0];
	var calNav = document.getElementById('calNav');
	scramKids(calTB);
	for (i=0;i<6;i++){ // row loop
		var calTR = document.createElement('tr');
		var calTDtext;
		var cellContent;
		for (j=0; j < 7; j++){ // cells in row loop, days in the week
			var calTD = document.createElement('td');
			if (j == 0 || j == 6 ) // weekends
				calTD.style.backgroundColor = '#EDF0FF';
			if ((i==0 && j < dayNo) || dayCount > monthNo) // cells before the first of the month or after the last day
				cellContent = document.createElement('br');
			else  {
				var dyA = document.createElement('a');
				if (dayCount >= curr_dy && m >= curr_mn && y >= curr_yr)
				dyA.setAttribute('href','javascript:placeDate('+m+','+dayCount+','+y+')');
				else if (m > curr_mn && y >= curr_yr)
				dyA.setAttribute('href','javascript:placeDate('+m+','+dayCount+','+y+')');
				else if (y > curr_yr)
				dyA.setAttribute('href','javascript:placeDate('+m+','+dayCount+','+y+')');				
				
				calTDtext = document.createTextNode(dayCount.toString());
				cellContent = calTDtext;
				if (dayCount == curr_dy && m == curr_mn && y == curr_yr)
						calTD.style.backgroundColor = '#fc0';
				if (calWknd == true){ // if the day is a weekday or weekends allowed
					if (dayCount == curr_dy && m == curr_mn && y == curr_yr && calSpan != 3 && calSpan != 0 && calSpan != 4){
						dyA.appendChild(calTDtext); cellContent = dyA;
					}
					if (calSpan == 1 || calSpan == 4){
						if (y < curr_yr || (m < curr_mn && y == curr_yr) || (m == curr_mn && y == curr_yr && dayCount < curr_dy))
							{
							dyA.appendChild(calTDtext); cellContent = dyA;
							}
					} 
					if (calSpan == 2 || calSpan == 3){
						if (y > curr_yr || (m > curr_mn && y == curr_yr) || (m == curr_mn && y == curr_yr && dayCount > curr_dy))
							{dyA.appendChild(calTDtext); cellContent = dyA;}
					}
					if (calSpan == 5){
						dyA.appendChild(calTDtext); cellContent = dyA;
					}
				}
				else { /* else if it's a weekend */ }
				dayCount++;
			}
			calTD.appendChild(cellContent);
			calTD.setAttribute('width','14%');
			calTR.appendChild(calTD);
		}
		calTB.appendChild(calTR);
	}
	var nMonth = getNextMonth(m,y,+1);
	var pMonth = getNextMonth(m,y,-1);
	document.getElementById('calNavPY').innerHTML = '<a href="javascript:void(0)" onclick="buildCalendar('+m+','+(y-1)+')">&laquo;Yr</a>';
	document.getElementById('calNavPM').innerHTML = '<a href="javascript:void(0)" onclick="buildCalendar('+pMonth[0]+','+pMonth[1]+')">&laquo;Mo</a>';
	document.getElementById('calNavMY').innerHTML = moty[m] +' '+y;
	document.getElementById('calNavNY').innerHTML = '<a href="javascript:void(0)" onclick="buildCalendar('+m+','+(y+1)+')">Yr&raquo;</a>';
	document.getElementById('calNavNM').innerHTML = '<a href="javascript:void(0)" onclick="buildCalendar('+nMonth[0]+','+nMonth[1]+')">Mo&raquo;</a>';
}
function showCal(m,y,f,dateSpan,wknd,format){
	/* 
	dateSpan - date that should have links; does not include weekends
	0 = no dates
	1 = all past dates up to and including today
	2 = all future dates starting with today
	3 = all future dates NOT including today ( for GTC Dates )
	4 = all past dates NOT including today ( for start / from dates )
	5 = all dates
	*/
	calField = f; calSpan = dateSpan; calFormat = format; calWknd = wknd;
	if (m == '' && y == ''){m = curr_mn; y = curr_yr;}
	buildCalendar(m,y);
	//show the current time
	displayTime();

	document.getElementById('calDiv').style.display = '';
}
function placeDate(m,d,y){ 
	eval(calField).value = dateFormats(m,d,y,calFormat);
	document.getElementById('calDiv').style.display = 'none';
}
function dateFormats(m,d,y,calFormat){
	d = d.toString();
	m = m+1; m = m.toString();
	y = y.toString(); 
	var sy = y;
// -- convert to 2 digit numbers
	if (m.length == 1){m = '0'+ m;}
	if (d.length == 1){d = '0'+ d;}
	if (y.length == 4)
	 sy = y.substring(2,4);
	var format;
	var tm = new Date();
	var AP;
	if (tm.getHours() > 11) { AP='PM'; } else { AP='AM';}
	switch (calFormat){
		case 0 : format = m + d + sy; break; 			//  mmddyy
		case 1 : format = m + d + y; break; 			//  mmddyyyy
		case 2 : format = m +'/'+ d +'/'+ y +' '+tm.getHours()+':'+tm.getMinutes ()+':'+tm.getSeconds()+' '+AP; break; 	//  mm/dd/yyyy
		case 3 : format = m +'/'+ d +'/'+ sy; break; 	//  mm/dd/yy
		case 4 : format = y + m; break; 				//  yyyymm
		case 5 : format = d + m + sy; break;			//  ddmmyy
		case 6 : format = d +'/'+ m +'/'+ sy; break; 	//  dd/mm/yy
		case 7 : format = d + m + y; break;				//  ddmmyyyy
		case 8 : format = d +'-'+ m +'-'+y ; break; 	//  dd-mm-yyyy
		default: format = m + d + y; break; 			//  mmddyyyy
	}
	return format;
}

function displayTime()
{
	var tm = new Date();
	var curHrs = tm.getHours();
	var curMin = tm.getMinutes();
	var curSec = tm.getSeconds();
	var ver0 = "";
	
	document.forms['frmSendSMS'].localDateTime.value = curr_yr +'-'+ curr_mn +'-'+ curr_dy +' '+curHrs+':'+curMin+':'+ curSec; 
	
	document.forms['frmSendSMS'].ddSendHours.options.length=0;
	for (i=0;i<24;i++)
	{
		if (i<10) 
			var0= '0' + i;
		else var0 = i;
		if (i==curHrs)
		document.forms['frmSendSMS'].ddSendHours.options[i]=new Option(var0, var0, true, true);
		else
		document.forms['frmSendSMS'].ddSendHours.options[i]=new Option(var0, var0, false, false);
	}
	
	document.forms['frmSendSMS'].ddSendMins.options.length=0;
	var var0 = "";
	
	for (i=0;i<=11;i++)
	{
		if (i<2) 
			var0= '0'+(i*5);
		else var0 = i*5;
		if (parseInt(var0) - parseInt(curMin) < 5 && parseInt(var0) - parseInt(curMin) > 0 )
		document.forms['frmSendSMS'].ddSendMins.options[i]=new Option(var0, var0, true, true);
		else
		{
		document.forms['frmSendSMS'].ddSendMins.options[i]=new Option(var0, var0, false, false);
		}
	}
}
//-->
