

var xhrs = new Array();


function $(id) {
	return document.all ? document.all(id) : document.getElementById(id);
}

function ddd() { console.log.apply(console, arguments); }

function doClassName(e,cn,add) {
	var t = e.className;
	var pos = t.indexOf(cn);
	if (pos>=0) {
		if (pos == 0) {
		}
	}

	if (add) {
		if (pos < 0) {
			t += ' ' + cn;
		}
	}
	else {
		t = t.replace(cn,'');
	}
	e.className = t;
}

function gup(name) {
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var r = regex.exec( window.location.href );
  if(r == null) return "";
  else return r[1];
}


function emptyCallback() {
}

function getXHR() {
	if (xhrs.length > 0) {
		return xhrs.pop();
	}
	else {
//		ddd('create xhr');
		if (window.XMLHttpRequest) {
			return new XMLHttpRequest();
		}
		else if (window.ActiveXObject) {
			return new ActiveXObject("Msxml2.XMLHTTP");
		}
	}
	return null;
}

function releaseXHR(xhr) {
	xhr.onreadystatechange = emptyCallback;
	xhrs.push(xhr);
}

function sendAsyncRequest(url, cb) {

	var xhr = getXHR();
	xhr.open('get', url);
	xhr.onreadystatechange = function() {
			if (xhr.readyState == 4) {
				var response = xhr.responseText;
//alert(response);
				var result = response ? eval('('+response+')'):'';

				if (result.error) {
					setStatusLine("Error: "+result.error);
					clearStatusLine(1000);
				}
				else {
					cb(result);
				}
				releaseXHR(xhr);
			}
		};
	xhr.send(null);
}



function setCookie(name, value, days) {
	var expire = new Date();
	if (!days) days=1;
	expire.setTime(expire.getTime() + 3600000*24*days);
	document.cookie = name + "=" + escape(value) + ";expires="+expire.toGMTString();
}

function getCookie(name, defaultValue) {
	if (document.cookie.length > 0) {
		var pos1 = document.cookie.indexOf(name + "=");
  	if (pos1 != -1) { 
    	pos1 += name.length+1; 
    	var pos2 = document.cookie.indexOf(";", pos1);
			if (pos2 == -1) pos2 = document.cookie.length;
			return unescape(document.cookie.substring(pos1,pos2));
		}
	}
	return defaultValue;
}


function setStatusLine(s, delay) {
/*	var display = s ? 'block' : 'none';
	var e = $('statusMsg');
	e.style.display = display;
	e.innerHTML = s;
*/
	if (delay) {
		clearStatusLine(delay);
	}
}

function clearStatusLine(delay) {
//	setTimeout('setStatusLine("")',delay);
}

function input_onfocus(event) {
	if (!event) event = window.event;
	var e = event.target ? event.target : event.srcElement;

	//alert('onfocus '+e.id+ ' value='+e.value + ' defValue='+e.defaultValue);
	if (e.value==e.defaultValue) {
		if (e.id=='password' && e.type!='password') {
			e = setInputType(e, 'password', true);
		}
		//doClassName(e,'empty',false);
		e.value = '';
	}
}

function input_onblur(event) {
	if (!event) event = window.event;
	var e = event.target ? event.target : event.srcElement;

	if (e.value=='' || e.value==e.defaultValue) {
		if (e.id=='password') {
			e = setInputType(e, 'text', false);
		}
		e.value = e.defaultValue;
	}
}

function setInputType(e, t, reqFocus) {
	if (e.type == t) return e;

	if (document.all) {
		var e2 = document.createElement('input');
		e2.type = t;
		e2.className = e.className;
		e2.value = e.value;
		e2.defaultValue = e.defaultValue;
		e2.id = e.id;
		e2.name = e.name;
		e.parentNode.replaceChild(e2,e);
//if (t=='text')
//alert('defValue=' + e.defaultValue);
		e = e2;
		e.onfocus = input_onfocus;
		e.onblur = input_onblur;
		if (reqFocus) {
			setTimeout('$("'+e.id+'").focus()', 100);
		}
	}
	else {
		e.type = t;
	}
	return e;
}


function sendLogin() {
	var e1 = $('username');
	var e2 = $('password');

	if (!e1.value || e1.value == e1.defaultValue ||
			!e2.value || e2.value == e2.defaultValue) {

		setStatusLine('Empty login or password', 2000);
		return;
	}

	setStatusLine("Logging in... ");
	
	var u = e1.value;
	var p = e2.value;

	var url = 'https://ambit.voxofon.com/app.php?m=getUser&u='+u+'&p='+p;
	sendAsyncRequest(url, handleLoginResponse);
}


function handleLoginResponse(result) {

	if (result.myUserId && result.sid) {
		alert("userId="+result.myUserId + ", sid=" + result.sid);
		// TODO: set cookie?
		window.location = '/admin/';
	}
	else {
		setStatusLine("Error logging in", 2000);
	}
}

