function sync_text_req(url, method, content){
	if (window.XMLHttpRequest){
		var req = new XMLHttpRequest();
		req.onload = null;
	}else if(window.ActiveXObject){
		var req = new ActiveXObject("Microsoft.XMLHTTP");
	} else{
		return 'Xml_HTTP not found';
	}

	req.open(method,url, false);
	if (method == 'POST'){
		req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
	}
	req.send(content);
	
	if ( req.status != "200" ) {
		return '';//alert("Transmition error : " + p.status);
	} else {
		return req.responseText;
	}
	return '';
}

function add_class(el, cl){
	// add _class_ to className
	el.className = el.className + ' ' + cl;
}

function del_class(el, cl){
	// remove _class_ from className
	var off = el.className.indexOf(cl);
	//alert(off);
	while (off != -1){
		var len = cl.length;
		var str = el.className.slice(0,off);
		str += el.className.slice(off+len);

		el.className = str;
		off = el.className.indexOf(cl);

	}
}
// bookmark



/// crossbrowser viewport functions

function get_vieport_property_name(str){
	var n = '';
	if (str == 'inner_height'){
		if (self.innerHeight) {
			n = 'window.innerHeight';
		}else if (document.documentElement && document.documentElement.clientHeight){
			n = 'document.documentElement.clientHeight';
		}
		else if (document.body){
			n = 'document.body.clientHeight';
		}
	}else if (str == 'inner_width'){
		if (self.innerWidth) {
			n = 'window.innerWidth';
		}else if (document.documentElement && document.documentElement.clientWidth){
			n = 'document.documentElement.clientWidth';
		}
		else if (document.body){
			n = 'document.body.clientWidth';
		}		
	}else if (str == 'scroll_left'){
		if (document.body){
			n = 'document.body.scrollLeft';
		}else if (document.documentElement && document.documentElement.scrollTop){
			n = 'document.documentElement.scrollLeft';
		}else if (self.pageYOffset) {
			n = 'window.pageXOffset';
		}
	}else if (str == 'scroll_top'){
		if (window.pageYOffset) {
			n = 'window.pageYOffset';
		}else if (document.documentElement && document.documentElement.scrollTop){
			n = 'document.documentElement.scrollTop';
		}else 
		if (document.body){
			n = 'document.body.scrollTop';
		}
	}else if (str == 'page_height'){
		var test1 = document.body.scrollHeight;
		var test2 = document.body.offsetHeight
		if (test1 > test2){
			n = 'document.body.scrollHeight';
		}else{
			n = 'document.body.offsetHeight';
		}
	}else if (str == 'page_width'){
		var test1 = document.body.scrollHeight;
		var test2 = document.body.offsetHeight
		if (test1 > test2){
			n = 'document.body.scrollWidth';
		}else{
			n = 'document.body.offsetWidth';
		}
	}
	return n;
}

function addFav(href, title){
	if (window.external && window.external.AddFavorite){
		window.external.AddFavorite(href, title);
	}else if (window.sidebar){
		window.sidebar.addPanel(title, href, "");
	}
	return false;
}


// animation functions  [need Tween]

function get_absolute_offset(el){
	var e = el;
	var x = 0;
	var y = 0;
	while (e.offsetParent){
		//log(e.offsetParent + '    ' + e.offsetLeft + ' : ' + e.offsetTop);
		x += e.offsetLeft;
		y += e.offsetTop;
		e = e.offsetParent;
	}
	var res = new Array();
	res['x'] = x;
	res['y'] = y; 
	return res;
}

function scroll_to(el){
	var coord = get_absolute_offset(el);
	//alert(el);
	//alert('[ '+ coord.x + ' : ' + coord.y + ' ]');
	var needed = coord.y;
	var scroll_top_name = get_vieport_property_name('scroll_top')
	eval('var current = ' + scroll_top_name + ';');
	eval('var view_height = ' + get_vieport_property_name('inner_height') + ';');
	eval('var doc_height =  ' + get_vieport_property_name('page_height') + ';');
	//alert(view_height + ' < '+ doc_height);

	needed -= view_height/3;
	if (needed < 0) {
		needed = 0;
	}
	if (needed + view_height > doc_height ){
		needed = doc_height - view_height;
	}
	//alert (needed);
	if (needed != current){
		var off = scroll_top_name.lastIndexOf('.');
		var property = scroll_top_name.slice(off+1);
		eval ('var obj = '+ scroll_top_name.slice(0,off) + ';');
		//alert(property);
		scroll_top_tween = new Tween(obj, property, Tween.regularEaseInOut, current, needed, 0.5);
		scroll_top_tween.start();
		return 500;
	}else{
		return 0;
	}
}

