// JavaScript Document
function ahah(url, target) {
  document.getElementById(target).innerHTML = '<span style=\"font-family:Trebuchet MS; font-size:11px>\">Loading..</span>';
  if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (req != undefined) {
    req.onreadystatechange = function() {ahahDone(url, target, req);};
    req.open("GET", url, true);
    req.send("");
  }
}  

/*
Third param is very useful if you need to pass the processed data into a function: 
function myfunction(my_processer_response){ 
  .... 
} 
usage : ahah_new('url',undefined,'myfunction');
*/
function ahah_new(url, target, funcname) {  // ahah_new(url, target, funcname)
        function ahahDone() { 
          if(req.readyState == 4){ 
            if(req.status == 200){ 
                  if(!(target == undefined)){ 
                    document.getElementById(target).innerHTML = req.responseText; 
                  } 
                  if(!(funcname == undefined)){ 
                    eval(funcname+"(req.responseText);"); 
                  } 
            }else{ 
                  if(!(target == undefined)){ 
                    document.getElementById(target).innerHTML = "ahah error:\n"+req.statusText; 
                  } 
              if(!(funcname == undefined)){ 
                    eval(funcname+"(req.responseText);"); 
                  } 
            } 
          } 
        } 


        if(!(target == undefined)){ 
            document.getElementById(target).innerHTML = '<span style=\"font-family:Trebuchet MS; font-size:11px>\">Loading..</span>..'; 
        } 
        if(window.XMLHttpRequest){ 
                var req = new XMLHttpRequest(); 
        }else if(window.ActiveXObject) { 
                var req = new ActiveXObject("Microsoft.XMLHTTP"); 
        } 
        if(req){ 
                req.onreadystatechange = function() { 
                        ahahDone(); 
                }; 
                req.open("GET", url, true); 
                req.send(""); 
        } 


} 
// not needed for ahah_new function which is better
function ahahDone(url, target, r) {
  if (r.readyState == 4) { // only if req is "loaded"
    if (r.status == 200) { // only if "OK"
      document.getElementById(target).innerHTML = r.responseText;
    } else {
      document.getElementById(target).innerHTML=" Err:\n"+ r.status + "\n" +r.statusText;
    }
  }
}
// used for two document load
function ahahDone2(url, target) {
  if (req2.readyState == 4) { // only if req is "loaded"
    if (req2.status == 200) { // only if "OK"
      document.getElementById(target).innerHTML = req2.responseText;
    } else {
      document.getElementById(target).innerHTML=" Err:\n"+ req2.status + "\n" +req2.statusText;
    }
  }
}

function load(name, div) {
	ahah(name,div);
	//return false;
}

function load2(name, div) {
	ahah_new(name,div);
	//return false;
}

var prevElem = 'm2';
var prevElemCateg = 'm1';
var imgThPrev = 'th1';
var prj = '5';
var prevSubmenu = 'sm1';
var prj_names = ['bibescu','casa cu turn','casa de caramida','casa de lemn','prunilor'];
var prj_images = [0,27,21,24,29,37,20,13,11,9,6,18,14,8,9,6,9,1,4,27,7,4,,,,,,,,,,,,,,,,,,,10,9,11,10,7,11,9,10,10,2,14,2,6,6];
prj_images[223] = 13;
prj_images[232] = 12;
prj_images[235] = 2;
prj_images[238] = 6;
prj_images[263] = 7;
prj_images[270] = 15;
prj_images[272] = 11;
prj_images[273] = 10;
prj_images[274] = 6;
prj_images[275] = 7;
prj_images[284] = 12;
prj_images[285] = 22;
prj_images[286] = 23;
prj_images[291] = 7;
prj_images[292] = 8;
prj_images[293] = 2;

// prevElem was top menu - don't do cleanPrev()
var wasTopCateg = false;

function cleanPrev(x) {
	if (wasTopCateg) {
		//alert('aa1');
		document.getElementById(prevElemCateg).style.color = '#c58200';	
		document.getElementById(prevElemCateg).style.fontWeight = 'normal';	
		document.getElementById(prevElem).style.color = '#c58200';	
		document.getElementById(prevElem).style.fontWeight = 'normal';	
		prevElemCateg = x.id;
		wasTopCateg = false;
	} else {
		//alert('bb1');
		document.getElementById(prevElem).style.color = '#c58200';	
		document.getElementById(prevElem).style.fontWeight = 'normal';	
		prevElem=x.id;	
	}
}
function mouseAction(x) {
	cleanPrev(x);
	x.style.color='#c58200';
	x.style.fontWeight='bold';
}
function cleanThPrev() {
	// document.getElementById(imgThPrev).style.backgroundColor = "#fff";
	document.getElementById(imgThPrev).style.border = "1px solid #444";
}
function thOver(x) {
	if(x.id != imgThPrev) {
		//x.style.backgroundColor = "#a3a7ac";
		x.style.border = "1px solid #c58200";
	}
}
function thOut(x) {
	if(x.id != imgThPrev) {
		// x.style.backgroundColor = "#fff";
		x.style.border = "1px solid #444";
	}
}
function thAction(x,prj) {
	cleanThPrev();
	// x.style.backgroundColor = "#a3a7ac";
	x.style.border = "1px solid #c58200";
	imgThPrev = x.id;
	load('img_big.php?prj='+prj+'&img='+x.id.substring(2)+'&th_max='+prj_images[Number(prj)],'imgBig');
}

function showSubmenu(x) {
	document.getElementById(prevSubmenu).style.visibility = 'hidden';
	document.getElementById(x).style.visibility = 'visible';
	prevSubmenu = x;
	//alert('sadf');
}
function clearAllSubmenu() {
	smMax = 5;
	for (i=1; i<smMax; i++) {
		document.getElementById("sm"+i).style.visibility = 'hidden';
	}
}

function loadProject(x) {
	ahah_new('prj_info.php?id='+x,'prjInfo');
	ahah_new('img_big.php?prj='+x+'&img=1&th_max='+prj_images[Number(x)],'imgBig');
	ahah_new('portofoliu_th.php?prj='+x+'&th_max='+prj_images[Number(x)],'thumbs');
	oldImg = "images/prj_"+x+"_1.jpg";
}

var oldImg = null;
var newImg = null;
var auxImg = null;

function previewPrjOn(x) {
	oldImg = imgBigImg.src;
	imgBigImg.src = "images/prj_"+x+"_1.jpg";
}

function previewPrjOff() {
	imgBigImg.src = oldImg;
}


// ********************************************* SCROLLER

var SLIDETIMER = 3;
var SLIDESPEED = 3;
var SCROLLTIMER = 3;
var SCROLLSPEED = 3;
var STARTINGOPACITY = 40;

// handles section to section scrolling of the content //
function slideContent(id,prefix,timer) {
  var div = document.getElementById(id);
  var slider = div.parentNode;
  clearInterval(slider.timer);
  slider.section = parseInt(id.replace(/\D/g,''));
  slider.target = div.offsetTop;
  slider.style.top = slider.style.top || '0px';
  slider.current = slider.style.top.replace('px','');
  slider.direction = (Math.abs(slider.current) > slider.target) ? 1 : -1;
  slider.style.opacity = STARTINGOPACITY * .01;
  slider.style.filter = 'alpha(opacity=' + STARTINGOPACITY + ')';
  slider.timer = setInterval( function() { slideAnimate(slider,prefix,timer) }, SLIDETIMER);
}

function slideAnimate(slider,prefix,timer) {
  var curr = Math.abs(slider.current);
  var tar = Math.abs(slider.target);
  var dir = slider.direction;
  if((tar - curr <= SLIDESPEED && dir == -1) || (curr - tar <= SLIDESPEED && dir == 1)) {
    slider.style.top = (slider.target * -1) + 'px';
	slider.style.opacity = 1;
	slider.style.filter = 'alpha(opacity=100)';
    clearInterval(slider.timer);
	if(slider.autoscroll) {
	  setTimeout( function() { autoScroll(slider.id,prefix,timer) }, timer * 1000);
	}
  } else {
	var pos = (dir == 1) ? parseInt(slider.current) + SLIDESPEED : slider.current - SLIDESPEED;
    slider.current = pos;
    slider.style.top = pos + 'px';
  }
}

// handles manual scrolling of the content //
function scrollContent(id,dir) {
  var div = document.getElementById(id);
  clearInterval(div.timer);
  var sections = div.getElementsByTagName('div');
  var length = sections.length;
  var limit;
  if(dir == -1) {
    limit = 0;
  } else {
    if(length > 1) {
      limit = sections[length-1].offsetTop;
    } else {
      limit = sections[length-1].offsetHeight - div.parentNode.offsetHeight + 20;
    }
  }
  div.style.opacity = STARTINGOPACITY * .01;
  div.style.filter = 'alpha(opacity=' + STARTINGOPACITY + ')';
  div.timer = setInterval( function() { scrollAnimate(div,dir,limit) }, SCROLLTIMER);
}

function scrollAnimate(div,dir,limit) {
  div.style.top = div.style.top || '0px';
  var top = div.style.top.replace('px','');
  if(dir == 1) {
	if(limit - Math.abs(top) <= SCROLLSPEED) {
	  cancelScroll(div.id);
	  div.style.top = '-' + limit + 'px';
	} else {
	  div.style.top = top - SCROLLSPEED + 'px';
	}
  } else {
	if(Math.abs(top) - limit <= SCROLLSPEED) {
	  cancelScroll(div.id);
	  div.style.top = limit + 'px';
	} else {
	  div.style.top = parseInt(top) + SCROLLSPEED + 'px';
	}
  }
}

// cancel the scrolling on mouseout //
function cancelScroll(id) {
  var div = document.getElementById(id);
  div.style.opacity = 1;
  div.style.filter = 'alpha(opacity=100)';
  clearTimeout(div.timer);
}

// initiate auto scrolling //
function autoScroll(id,prefix,timer,restart) {
  var div = document.getElementById(id);
  div.autoscroll = (!div.autoscroll && !restart) ? false : true;
  if(div.autoscroll) {
    var sections = div.getElementsByTagName('div');
    var length = sections.length;
    div.section = (div.section && div.section < length) ? div.section + 1 : 1;
    slideContent(prefix + '-' + div.section,prefix,timer);
  }
}

// cancel automatic scrolling //
function cancelAutoScroll(id) {
  var div = document.getElementById(id);
  div.autoscroll = false;
}
