var ajaxObj = createXMLHttp();
var buddyLogin;
var curURL;
var userName;
var urlbase = location.href.replace('http://','');
var queCmd;
var reportForm;
var myMod = 0;
urlbase = urlbase.split('/');
urlbase = 'http://'+urlbase[0];

/*
function loadChatConsole(username){
	if(username != null && username != ''){
		loadBumpinWidget({height:"350",width:"200",popup:"true",color_string:"bg1:0xffffff,bg2:0xffffff-",color_theme:"default", nick_name: username});
		//load_bumpin_widget("0bdcc7c22b914e755291642b94cd92eb","#ffffff", username);
	}else{
		loadBumpinWidget({height:"350",width:"200",popup:"true",color_string:"bg1:0xffffff,bg2:0xffffff-",color_theme:"default", nick_name:""});
		//load_bumpin_widget("0bdcc7c22b914e755291642b94cd92eb","#ffffff");
	}
}
*/

function GetBetween (str, start, end) {
pos1 = str.indexOf(start) + start.length;
pos2 = str.indexOf(end, pos1);
return str.substr(pos1, pos2 - pos1);
}

function createXMLHttp() {
	if (typeof XMLHttpRequest != 'undefined')
		return new XMLHttpRequest();
	else if (window.ActiveXObject) {
		var avers = ["Microsoft.XmlHttp", "MSXML2.XmlHttp", "MSXML2.XmlHttp.3.0", "MSXML2.XmlHttp.4.0", "MSXML2.XmlHttp.5.0"];
		for (var i = avers.length -1; i >= 0; i--) {
			try {
				httpObj = new ActiveXObject(avers[i]);
				return httpObj;
			} catch(e) {}
		}
	}
	throw new Error('XMLHttp (AJAX) not supported');
}

function getRequestBody(oForm) {
	var aParams = new Array();
	for (var i=0; i < oForm.elements.length; i++) {
	var sParam = encodeURIComponent(oForm.elements[i].name);
	sParam += "=";
	sParam += encodeURIComponent(oForm.elements[i].value);
	aParams.push(sParam);
	}
	return aParams.join("&");
}

function initiateLogin() {
	buddyLogin = document.getElementById('buddyLogin');
	curURL = urlbase+'/check_login';
	ajaxObj.open('GET', curURL, true);
	ajaxObj.onreadystatechange = function() { updateAjax(); }
	ajaxObj.send(null);
}

function rateThis(tutID, rateValue){
	curURL = urlbase+'/rating.php';
	ajaxObj.open('GET', curURL, true);
	ajaxObj.onreadystatechange = function() { updateAjax(); }
	ajaxObj.send(null);
}

function rateThis(tut_id, rateValue){
	if(tut_id != '' && tut_id != null){
		myMod = 2;
		curURL = urlbase+'/rating.php?tutorialId='+tut_id+'&rateValue='+rateValue;
		ajaxObj.open('GET', curURL, true);
		ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		ajaxObj.onreadystatechange = function() { updateAjax(); }
		ajaxObj.send(null);
		document.getElementById('ratingConsol').innerHTML = "Rating Tutorial...";
	}else{
		//Tut_id not present
		document.getElementById('ratingConsol').innerHTML = "Tutorial Id Not Found!";
	}
	document.getElementById('ratingHolder').innerHTML = "";
}

function doLogin(oForm) {
	if(checkLoginFields()){
	curURL = urlbase+'/ajax_login';
	ajaxObj.open('POST', curURL, true);
	ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajaxObj.onreadystatechange = function() { updateAjax(); }
	ajaxObj.send(getRequestBody(oForm));
	document.getElementById('loginHolderDiv').innerHTML = "<br/><br/>Logging...<br/><br/>";
	}
}

function doBookMarkLogin(oForm) {
	curURL = urlbase+'/ajax_login_bookmark';
	ajaxObj.open('POST', curURL, true);
	ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajaxObj.onreadystatechange = function() { updateAjax(); }
	ajaxObj.send(getRequestBody(oForm));
	document.getElementById('loginHolderDiv').innerHTML = "<br/><br/>Logging...<br/><br/>";
}

function doBookMarkTutorial(tut_id){
	if(tut_id != '' && tut_id != null){
		//Do Bookmark
		myMod = 1;
		curURL = urlbase+'/bookmark_tutorial/'+tut_id;
		ajaxObj.open('GET', curURL, true);
		ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		ajaxObj.onreadystatechange = function() { updateAjax(); }
		ajaxObj.send(null);
		document.getElementById('loginHolderDiv').innerHTML = "<br/><br/>Saving Tutorial...<br/><br/>";
	}else{
		//Tut_id not present
		document.getElementById('loginHolderDiv').innerHTML = "<br/><br/>Tutorial Id Not Found!<br/><br/>";
	}
}

function reportTutorial(oForm) {
	reportForm = oForm;
	var inpArr = new Array();
	inpArr = oForm.getElementsByTagName('input');
	var selVal;
	if(inpArr[0].checked == true || inpArr[1].checked == true || inpArr[2].checked == true){
		curURL = urlbase+'/reportTutorial';
		ajaxObj.open('POST', curURL, true);
		ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		ajaxObj.onreadystatechange = function() { updateAjax(); }
		ajaxObj.send(getRequestBody(oForm));
		oForm.innerHTML = "<br/>Reporting...<br/><br/>";
	}else{
		alert("Please choose one of the options");
	}
}

function tellFriends(oForm) {
	if(checkTellFriendsFields()){
	curURL = urlbase+'/tellFriends';
	ajaxObj.open('POST', curURL, true);
	ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajaxObj.onreadystatechange = function() { updateAjax(); }
	ajaxObj.send(getRequestBody(oForm));
	document.getElementById('tellFriendsNotification').innerHTML = "Telling...";
	}
}

function checkAvailability(usname) {
	curURL = urlbase+'/checkAvailability/'+usname;
	ajaxObj.open('POST', curURL, true);
	ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajaxObj.onreadystatechange = function() { 
		if (ajaxObj.responseText.substring(0, 18) == '<msg>Success</msg>') {
			// Successfull.
			response = GetBetween(ajaxObj.responseText, "<response>", "</response>");
			document.getElementById('usname').className = "inputFields okayField";
			document.getElementById('chkAVL').innerHTML = temp;
			curURL = '';
			clearQue();
			return true;
		} else if(ajaxObj.responseText.substring(0, 17) == '<msg>Failed</msg>')  {
			// Unsuccessfull.
			document.getElementById('usname').className = "inputFields errorField";
			document.getElementById('chkAVL').innerHTML = temp;
			curURL = '';
			clearQue();
			return false;
		}

	}
	ajaxObj.send(null);
}

function addToQue(cmd) {
queCmd = queCmd + cmd;
}

function clearQue() {
ajaxObj.abort;
eval(queCmd);
queCmd = '';
}

function updateAjax() {
	if (ajaxObj.readyState == 4) {
		if (ajaxObj.status == 200) {
			if (curURL == urlbase+'/check_login') {
				if (ajaxObj.responseText.substring(0, 18) == '<msg>Success</msg>') {
					// Already Logged.
					userName = GetBetween(ajaxObj.responseText, "<user>", "</user>");
					buddyLogin.innerHTML = ajaxObj.responseText.substring(ajaxObj.responseText.indexOf("</user>") + 7);
					//loadChatConsole(userName);
					curURL = '';
					clearQue();
				}else {
					// Not Already Logged.
					buddyLogin.innerHTML = ajaxObj.responseText;
					//loadChatConsole();
					curURL = '';
					clearQue();
				}
			} else if (curURL == urlbase+'/ajax_login') {
				if (ajaxObj.responseText.substring(0, 18) == '<msg>Success</msg>') {
					// Successfull Login.
					userName = GetBetween(ajaxObj.responseText, "<user>", "</user>");
					buddyLogin.innerHTML = ajaxObj.responseText.substring(ajaxObj.responseText.indexOf("</user>") + 7);
					//loadChatConsole(userName);
					curURL = '';
					clearQue();
				} else {
					// Incorrect Login.
					buddyLogin.innerHTML = ajaxObj.responseText;
					//loadChatConsole();
					curURL = '';
					clearQue();
				}
			} else if (curURL == urlbase+'/ajax_login_bookmark') {
				if (ajaxObj.responseText.substring(0, 18) == '<msg>Success</msg>') {
					// Successfull Login.
					userName = GetBetween(ajaxObj.responseText, "<user>", "</user>");
					eval(ajaxObj.responseText.substring(ajaxObj.responseText.indexOf("</user>") + 7));
					curURL = '';
					clearQue();
				} else {
					// Incorrect Login.
					document.getElementById('loginHolderDiv').innerHTML = ajaxObj.responseText;
					curURL = '';
					clearQue();
				}
			} else if(myMod == 1){//If Tutorial Bookmark is selected
				if (ajaxObj.responseText.substring(0, 18) == '<msg>Success</msg>') {
					// Successfull
					response = GetBetween(ajaxObj.responseText, "<response>", "</response>");
					document.getElementById('loginHolderDiv').innerHTML = '<div style="text-align:right;"><a href="javascript:void(null)" onclick="hideLoginDialog();">Close</a><br/><br/></div>' + response;
					curURL = '';
					clearQue();
					myMod = 0;
				} else {
					// Unsuccessfull
					document.getElementById('loginHolderDiv').innerHTML = '<div style="text-align:right;"><a href="javascript:void(null)" onclick="hideLoginDialog();">Close</a><br/><br/></div>' + ajaxObj.responseText;
					curURL = '';
					clearQue();
					myMod = 0;
				}
			} else if(myMod == 2){//Rate Tutorial
				var rateConsol = document.getElementById('ratingConsol');
				if (ajaxObj.responseText == 1) {
					// Successfull
					rateConsol.innerHTML = 'Thankyou for rating';
					curURL = '';
					clearQue();
					myMod = 0;
				}else if (ajaxObj.responseText == -3) {
					rateConsol.innerHTML = 'The Tutorial Was Not Found';
					curURL = '';
					clearQue();
					myMod = 0;
				}else if (ajaxObj.responseText == -2) {
					rateConsol.innerHTML = 'You have already rated';
					curURL = '';
					clearQue();
					myMod = 0;
				} else {
					// Unsuccessfull
					rateConsol.innerHTML = 'There was an error';
					curURL = '';
					clearQue();
					myMod = 0;
				}
			} else if (curURL == urlbase+'/tellFriends') {
				if (ajaxObj.responseText.substring(0, 18) == '<msg>Success</msg>') {
					// Successfull.
					response = GetBetween(ajaxObj.responseText, "<response>", "</response>");
					document.getElementById('tellFriendsNotification').innerHTML = response;
					document.getElementById('myName').value = '';
					document.getElementById('friendEmls').value = '';
					curURL = '';
					clearQue();
				} else {
					// Unsuccessfull.
					document.getElementById('tellFriendsNotification').innerHTML = ajaxObj.responseText;
					curURL = '';
					clearQue();
				}
			} else if (curURL == urlbase+'/reportTutorial') {
				if (ajaxObj.responseText.substring(0, 18) == '<msg>Success</msg>') {
					// Successfull.
					response = GetBetween(ajaxObj.responseText, "<response>", "</response>");
					reportForm.innerHTML = response;
					curURL = '';
					clearQue();
				} else {
					// Unsuccessfull.
					reportForm.innerHTML = ajaxObj.responseText;
					curURL = '';
					clearQue();
				}
			}
		} else {
			buddyLogin.innerHTML = 'Connection to server lost!';
			curURL = '';
			clearQue();
		}
	}
}