function el(id){ return document.getElementById(id); }
function Waiting(){
	if(el("feedback")){
		el("feedback").innerHTML = "<span class=\"waiting\">WORKING...</span>";
	}
}	
function Done(){
	if(el("feedback")){
		el("feedback").innerHTML = "";
	}
}
// returns: false|string(responseText)
function httpGET(url) {
    var req;
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.open('GET', url, false);
		//req.onreadystatechange = Waiting();
        req.setRequestHeader('Accept-Charset','UTF-8');
        req.setRequestHeader('Connection','close');
        req.send(null);
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.open("GET", url, false);
			//req.onreadystatechange = Waiting();
            req.setRequestHeader('Accept-Charset','UTF-8');
            req.setRequestHeader('Connection','close');
            req.send();
        } else {
            alert("Could not create ActiveXObject (XMLHttpRequest)");
            return false;
        }
    } else {
        alert("Your browser does not support XMLHttpRequest object");
        return false;
    }
    if (req.status != 200) {
        alert("There was a problem while retrieving the data:\n" + req.statusText);
        req.abort();
        return false;
    }
    //return req.responseText;
	Done();
    return req.responseText;
}

// returns: true|false|string(responseText)
function httpPOST(url, data) {
	var req;
	var content = data;
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.open('POST', url, false);
		req.onreadystatechange = Waiting();
        req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
        req.send(content);
    } else if (window.ActiveXObject) {
        req = new ActiveXObject('Microsoft.XMLHTTP');
        if (req) {
            req.open('POST', url, false);
			req.onreadystatechange = Waiting();
            req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
            req.send(content);
        } else {
            alert("Could not create ActiveXObject (XMLHttpRequest)");
            return false;
        }
    } else {
        alert("Your browser does not support XMLHttpRequest object");
        return false;
    }
    if (req.status != 200) {
	alert("There was a problem while sending the data:\n" + req.statusText);
        req.abort();
        return false;
    }
	Done();
    if (req.responseText.length) {
        return req.responseText;
    }
    return true;
}
function getDocHeight() {
    var L = el('cleft');
    var R = el('cright');
    return Math.max(
        Math.max(L.scrollHeight, R.scrollHeight),
        Math.max(L.offsetHeight, R.offsetHeight),
        Math.max(L.clientHeight, R.clientHeight)
    );
}
function cols(){
	if(el("text")){
		var v = getDocHeight();
		el("text").style.height = v+"px";
	}
	el("footer").style.display = "block";
}

function ThemesCollect(id){
	
	var n_ths = new Array();
	var n = 0;
	var act = "add";
	
	if( el("themes_collect").value != ""){
		var ths = el("themes_collect").value.split(";");
		for(i=0;i<ths.length;i++){
			if(ths[i] == id){
				var act = "del";
				el("theme_"+id).className = "off";
			}else{
				n_ths[n] = ths[i];
				n++;
			}
		}
	}
	
	if(act == "add"){
		n_ths[n] = id;
		el("theme_"+id).className = "on";
	}
	el("themes_collect").value = n_ths.join(";");
}

// filtri nella ricerca
function add_filter(id,filter){
	el("Filter").value = filter;
	el("ID").value = id;
	el("AddFilter").submit();
}
function del_filter(id,filter){
	el("Action").value = "DelFilter";
	el("Filter").value = filter;
	el("ID").value = id;
	el("AddFilter").submit();
}
function add_sort(ord){
	el("OrderBy").value = ord;
	el("AddFilter").submit();
	//setTimeout(function(){ el("AddFilter").submit(); },0);
}

// logina hide/show nella ricerca
function FlexBoxShowDetails(id){
	el("line_"+id).style.display = "none";
	el("box_"+id).style.display = "block";
	cols();
}
function FlexBoxHideDetails(id){
	el("line_"+id).style.display = "block";
	el("box_"+id).style.display = "none";
	cols();
}

// Vota il libro
function VoteOn(n){
	el("voteold").value = el("voteset").innerHTML;
	for(i=0;i<n;i++){
		z = parseInt(i)+1;
		el("v"+z).style.background = "transparent url('/img/icon-vote-hover.png') top left no-repeat";
	}
}
function VoteOut(n){
	el("voteset").innerHTML = el("voteold").value;
}
function VotePut(n){
	var isbn = el("poll_isbn").value;
	var r = httpGET("/get_vote.php?ISBN="+isbn+"&score="+n);
	if(r == "OK"){
		el("voteold").value = el("voteset").innerHTML;
		alert("Grazie per aver votato il libro. Il tuo voto sara' calcolato tra pochi minuti.");
	}else{
		alert("Spiacente, hai gia' votato questo libro!");
	}
}

///////////////////////////////////
// E-commerce functions
//////////////////////////////////

function SetItemQuantity(track_id,line_id){
	window.location = "/ShoppingAction.php?Action=SetItemQuantity&TrackID="+track_id+"&LineID="+line_id+"&q="+el("qnt_"+line_id).value;
}

function SetShippingFee(track_id,id,zone){
	window.location = "/ShoppingAction.php?Action=SetShippingFee&TrackID="+track_id+"&OptID="+id+"&Zone="+zone;
}

function SetPaymentFee(track_id,id,zone){
	window.location = "/ShoppingAction.php?Action=SetPaymentFee&TrackID="+track_id+"&OptID="+id+"&Zone="+zone;
}

function SetOrderCountry(track_id){
	window.location = "/ShoppingAction.php?Action=SetOrderCountry&TrackID="+track_id+"&Country="+el("OrderCountry").value;
}

function ShowBillingData(){
	var b = el("CheckBilling");
	if(el("CheckBilling").checked){
		el("Billing").value = 0;
		el('billing-data').style.display = "none";
	}else{
		el("Billing").value = 1;
		el('billing-data').style.display = "block";
	}
	cols();
}

function PrivacyCheck(){
	var b = el("Privacy");
	if(b.checked){
		b.value = 1;
	}else{
		b.value = 0;
	}
}

function OpenSignIn(){
	el('form_super_short').style.display='none';
	el('form_short').style.display='block';
	cols();
}

function UserTypeCheck(n,prefix){
	if(n == 0){
		el(prefix+"-Fullname").style.display = "none";
		el(prefix+"-Firstname").style.display = "block";
		el(prefix+"-Lastname").style.display = "block";
	}else{
		el(prefix+"-Fullname").style.display = "block";
		el(prefix+"-Firstname").style.display = "none";
		el(prefix+"-Lastname").style.display = "none";
	}
}

function CheckValue(route,set,unset){
	if(route.checked){
		route.value = set;
	}else{
		route.value = unset;
	}
}

// Funzioni Profile
function SetAddressAs(As,AddressID){
	r = httpGET("/ProfileAction.php?AddressID="+AddressID+"&Action=SetAddressAs&As="+As);
}

// Funzioni tabbed scheda libro
function TabPreView(n){
 	var i = 0;
	if(window.location.href.indexOf('#rel1') > -1){ var n = 1; var i = 1; } 
	if(window.location.href.indexOf('#rel2') > -1){ var n = 2; var i = 1; } 
	if(window.location.href.indexOf('#rel3') > -1){ var n = 3; var i = 1; } 
	if(window.location.href.indexOf('#rel4') > -1){ var n = 4; var i = 1; }
	TabView(n,i);
}
function TabView(n,act){
	for(i=1;i<5;i++){
		m_id = 'm_rel_'+i;
		t_id = 't_rel_'+i;
		if(el(m_id)){
			if(n == i){
				el(m_id).getElementsByTagName('a')[0].className = "related-label-selected";
				el(t_id).style.display = "block";
			}else{
				el(m_id).getElementsByTagName('a')[0].className = "related-label-noselected"
				el(t_id).style.display = "none";
			}
			if(act == 1){
				window.location = String(window.location).replace(/\#.*$/, "") + "#rel"+n;
			}
		}
	}
	cols();
}

