var calender = setXMLObject();
var loginData = setXMLObject();
var panlIDCheck = setXMLObject();
var loginCheck = false;

var queryString = location.search.replace(/^[^\?]+\??/,'');
var params = parseQuery(queryString);

var curDate = new Date();
var month = curDate.getMonth();
var year = curDate.getYear();
if (year < 1900)
	year = 1900 + year;

mini_calender('none');
checkLogin('checkLogin');


/* --------------------------------------------------------------------- */
/*					Manage Account Functions							 */
/* --------------------------------------------------------------------- */

function togglePassword() {
	if (document.getElementById('changePassword').style.display == 'block')
		document.getElementById('changePassword').style.display = 'none';
	else
		document.getElementById('changePassword').style.display = 'block';
}
function checkPassword() {
	password0 = document.getElementById('oldpassword');
	password1 = document.getElementById('newpassword1');
	password2 = document.getElementById('newpassword2');
	
	if (password1.value != password2.value) {
		alert('The passwords do not match');
		password0.value = '';
		password1.value = '';
		password2.value = '';
		password0.focus();
		
		return false;
	}
}

/* --------------------------------------------------------------------- */
/*							Form Functions								 */
/* --------------------------------------------------------------------- */
function createAccountFormCheck() {
	var login1 = document.getElementById('login1');
	var login2 = document.getElementById('login2');
	var password1 = document.getElementById('password1');
	var password2 = document.getElementById('password2');

	if (login1.value != login2.value) {
		alert('The email addresses you have entered do not match.');
		return false;
	}
	else {
		if (password1.value != password2.value) {
			alert('The passwords do not match!');
			return false;	
		}
		return true;
	}
}
/* --------------------------------------------------------------------- */
/*							Forum Functions								 */
/* --------------------------------------------------------------------- */
function preview() {
	preview = window.open("","msgpreview",'titlebar=0,status=0,width=550,height=500');
	preview.document.write("<table");
}

/* --------------------------------------------------------------------- */
/*							Login Functions								 */
/* --------------------------------------------------------------------- */
function checkLogin(func) {
	switch (func) {
		case 'checkLogin':
			postValue = 'func=checkLogin';
			break;	
		case 'validate':
			var login = document.getElementById('login').value;
			var password = document.getElementById('password').value;
			postValue = 'func=validate&login=' + login + '&password=' + password;
			loginCheck = true;
			break;
		case 'signout':
			postValue = 'func=signout';
			break;
	}
	loginData.open('POST','xml/login.php');
	loginData.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	loginData.send(postValue);
	loginData.onreadystatechange = processLogin;
}
function loginSubmit() {
	checkLogin('validate');
	return false;	
}
function processLogin () {
	if (loginData.readyState == 4) {
		if (loginData.responseText == 'Invalid Username') {
			alert('Invalid Username!');
			checkLogin('checkLogin');
		}
		if (loginData.responseText == 'Invalid Password') {
			alert('The password you\'ve entered is invalid!\nYour password can be retrieved by clicking\non \'forgotten password\'.');
			checkLogin('checkLogin');	
		}
		document.getElementById('loginstatus').innerHTML = loginData.responseText;
		if (loginCheck) {
			try {
				var afterlogin = document.getElementById('afterlogin');	
				afterlogin.click();
				loginCheck = false;
			} catch (e) {
				
			}
		}
	}
}
function getPage(url) {
	var start = (url.search('page='));
	var end = (url.search('\&'));
	if (end == -1)
		url = url.substr(start + 5);
	else
		url = url.substr(start + 5, end - (start + 5));
	
	return url;		
}

/* --------------------------------------------------------------------- */
/*						Mini Calender Functions							 */
/* --------------------------------------------------------------------- */

function parseQuery (query) {
   var Params = new Object ();
   if ( ! query ) return Params; // return empty object
   var Pairs = query.split(/[;&]/);
   for ( var i = 0; i < Pairs.length; i++ ) {
      var KeyVal = Pairs[i].split('=');
      if ( ! KeyVal || KeyVal.length != 2 ) continue;
      var key = unescape( KeyVal[0] );
      var val = unescape( KeyVal[1] );
      val = val.replace(/\+/g, ' ');
      Params[key] = val;
   }
   return Params;
}

function drawcalender() {
	if (calender.readyState == 4) {
		document.getElementById('mini_calender').innerHTML = calender.responseText;
	}	
}
function mini_calender(offset) {
	var mini_calender = document.getElementById('mini_calender');

	mini_calender.innerHTML = '';
	
	if (offset == 'none') {
		if (!isNaN(params['month'])) {
			month = params['month'] - 1;
			year = params['year'];
		}
		

	}
	
	if (offset == 'next') {
		month++;
		if (month == 12) {
			month = 0;
			year++;	
		}
	}
	if (offset == 'prev') {
		month--;
		if (month == -1) {
			month = 11;
			year--;	
		}
	}
	calender.open('POST','xml/mini_calender.php');
	calender.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	calender.send('month=' + textMonth(month) + '&year=' + year);
	calender.onreadystatechange = drawcalender;
}
function textMonth(month) {
	var textMonth = new Array (
		"January ",
		"February ",
		"March ",
		"April ",
		"May ",
		"June ",
		"July ",
		"August ",
		"September ",
		"October ",
		"November ",
		"December ");
	
		return textMonth[month];
}

/* --------------------------------------------------------------------- */
/*				XML Object Branch for IE and Everything Else				 */
/* --------------------------------------------------------------------- */

function setXMLObject() {
	var req = false;
    // branch for native XMLHttpRequest object
    if(window.XMLHttpRequest) {
    	try {
			req = new XMLHttpRequest();
        } catch(e) {
			req = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	req = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		req = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		req = false;
        	}
		}
    }
	return req;
}
