function DoAjax(url) {
	if(window.XMLHttpRequest) // FIREFOX
		xhr_object = new XMLHttpRequest();
	else if(window.ActiveXObject) // IE
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else
		return(false);	
	
	xhr_object.open("GET", '/_ajax/'+url, false);
	xhr_object.send(null);	

	if(xhr_object.readyState == 4)
		return xhr_object.responseText;
	else
		return "<div class=\"red_box\">This Operation cannot be performed for the moment</div>";
}

function GetId(id) {
	if(document.getElementById) // standardised method first
		return document.getElementById(id);
	else if(document.all)
		return document.all[id];
	else if(document.layers)
		return document.layers[id];
	else
		return null;
}
function GetSel(id){
	return GetId(id).options[GetId(id).selectedIndex].value;
}
function CheckEmail(str){
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	var err = '';
	if (str == '') err = 'Your E-mail cannot be empty!';
	if (str.indexOf(at)==-1)   return false
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr) return false
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr) return false
	 if (str.indexOf(at,(lat+1))!=-1) return false
	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot) return false
	 if (str.indexOf(dot,(lat+2))==-1) return false
	 if (str.indexOf(" ")!=-1) return false
	 return true					
}
function stf(action){
	if(action == 'cancel')
		GetId('stf_box').style.display = 'none';
	if(action == 'show'){
    	var pos = GetPos('stf_link');
		GetId('stf_box').style.left = pos[0]+'px';	
		GetId('stf_box').style.top = pos[1]+'px';
		GetId('stf_box').style.display = 'block';
		GetId('stf_email').value = '';
    }
	else if(action == 'send'){
		var email = GetId('stf_email').value;
		if(CheckEmail(email) == false) 
			alert('Your Friend\'s email must be something like name@domain.com');
		else {
			var res = DoAjax('stf.php?url='+document.location.href+'&email='+email);	
			if(res == 'OK')
				alert('This page has been successfully sent to your friend');
			else
				alert('Problem encountered during mail sending process');
				GetId('stf_box').style.display = 'none';
		}
	}
}
function GetPos(element){
    var left = 0;
    var top = 25;
    var e = GetId(element);
    while (e.offsetParent != undefined && e.offsetParent != null) {
        left += e.offsetLeft + (e.clientLeft != null ? e.clientLeft : 0);
        top += e.offsetTop + (e.clientTop != null ? e.clientTop : 0);
        e = e.offsetParent;
    }
	//alert(left+' --- '+top);
    return new Array(left,top);
}

