


function show_item( id, image ){
  var id_string = "shown_item_" + id;
  var index = getIntex(id);
  
  if ( sitedata[index]["link"] ){
  	document.getElementById(id_string+"_close").style.display = "block";
  } else if ( sitedata[index]["type"] == "section" || sitedata[index]["type"] == "subsection" ){
    if ( sitedata[index]["open"] ){
      document.getElementById(id_string+"_open").style.display = "block";
      document.getElementById(id_string+"_close").style.display = "none";
    } else {
      document.getElementById(id_string+"_open").style.display = "none";
      document.getElementById(id_string+"_close").style.display = "block";
    }
  } else if ( sitedata[index]["type"] == "item" ){
    if ( sitedata[index]["content_type"] == "image" ){
      document.getElementById(id_string+"_close").style.display = "block";
      if (sitedata[index]["nohover"]) deactivate_hover(id);
    } else if ( sitedata[index]["content_type"] == "video" ){
      if ( sitedata[index]["open"] ){
        if ( sitedata[index]["more"] ){
          document.getElementById(id_string+"_open").style.display = "none";
          document.getElementById(id_string+"_close").style.display = "none";
          document.getElementById(id_string+"_more").style.display = "block";
        } else {
          document.getElementById(id_string+"_open").style.display = "block";
          document.getElementById(id_string+"_close").style.display = "none";
          document.getElementById(id_string+"_more").style.display = "none";
        }
      } else {
        document.getElementById(id_string+"_open").style.display = "none";
        document.getElementById(id_string+"_close").style.display = "block";
        document.getElementById(id_string+"_more").style.display = "none";
      }
    } else {
      console.error("no type in id " + id + " at 'show_item'");
    }
  } else {
    console.error("no type in id " + id + " at 'show_item'");
  }
  
  sitedata[index]["shown"] = true;
}


var all_closed = false;

function close_all(){
    // this line for the last **** change
    all_closed = false;
    // this is the normal function
    if ( all_closed ){
      for ( var i=0; i<sitedata.length; i++ ){
        if ( sitedata[i]["type"] == "section" ){
        	sitedata[i]["open"] = sitedata[i]["keep_open"];
        	if (sitedata[i]["keep"]) show_item( sitedata[i]["id"] );
        } else if ( sitedata[i]["type"] == "subsection" ){
          sitedata[i]["open"] = sitedata[i]["keep_open"];
          if (sitedata[i]["keep"]) show_item( sitedata[i]["id"] );
        } else if ( sitedata[i]["type"] == "item" ) {
          if (sitedata[i]["keep"]) show_item( sitedata[i]["id"] );
        } else {
          console.error("no type in array " + i + " at 'showData'-'first' ");
        }
      }
      all_closed = false;
    } else {
      for ( var i=0; i<sitedata.length; i++ ){
        if ( sitedata[i]["type"] == "section" ){
          sitedata[i]["keep_open"] = sitedata[i]["open"];
          sitedata[i]["open"] = false;
          sitedata[i]["keep"] = sitedata[i]["shown"];
          show_item( sitedata[i]["id"] );
        } else if ( sitedata[i]["type"] == "subsection" ){
          sitedata[i]["keep_open"] = sitedata[i]["open"];
          sitedata[i]["open"] = false;
          sitedata[i]["keep"] = sitedata[i]["shown"];
          hide_item( sitedata[i]["id"] , true);
        } else if ( sitedata[i]["type"] == "item" ) {
          sitedata[i]["keep"] = sitedata[i]["shown"];
          hide_item( sitedata[i]["id"] , true);
        } else {
          console.error("no type in array " + i + " at 'showData'-'first' ");
        }
      }
      all_closed = true;
    }

    setSiteSize(null, null);
}

function close_all_finish(){
    for ( var i=0; i<sitedata.length; i++ ){
      if ( sitedata[i]["type"] == "section" ){
        sitedata[i]["open"] = false;
        show_item( sitedata[i]["id"] );
      } else if ( sitedata[i]["type"] == "subsection" ){
        sitedata[i]["open"] = false;
        hide_item( sitedata[i]["id"] );
      } else if ( sitedata[i]["type"] == "item" ) {
        hide_item( sitedata[i]["id"] );
      } else {
        console.error("no type in array " + i + " at 'showData'-'first' ");
      }
    }
    all_closed = false;
    setSiteSize(null, null);
}


function isallclosed(){
	for ( var i=0; i<sitedata.length; i++ ){
    if ( sitedata[i]["type"] == "section" && sitedata[i]["open"] == true ) return false;
	}
  return true;
}




function hide_item( id ){
  var id_string = "shown_item_" + id;
  var index = getIntex(id);

  if ( document.getElementById(id_string+"_open") != null ) document.getElementById(id_string+"_open").style.display = "none"; 
  if ( document.getElementById(id_string+"_close") != null ) document.getElementById(id_string+"_close").style.display = "none"; 
  if ( document.getElementById(id_string+"_more") != null ) document.getElementById(id_string+"_more").style.display = "none"; 

  sitedata[index]["shown"] = false;
}




function switch_item( id ){
  var index = getIntex(id);
  if ( sitedata[index]["link"] ){
  	// do nothing
  } else if ( sitedata[index]["type"] == "section" ){
  	sitedata[index]["open"] = !sitedata[index]["open"];
  	open_close_section( id );
  	// check the subsections
  	if ( sitedata[index]["open"] ){
  		for ( var i=index+1; i<=parseInt(index)+parseInt(sitedata[index]["size"]); i++  ){
  			if ( sitedata[i]["type"] == "subsection" ){
  				open_close_section( sitedata[i]["id"] );
  			}
  		}
  	}
  	// hide if neccessary
    if ( sitedata[index]["disapears"] && sitedata[index]["open"] ){
    	hide_item( id );
    } else {
    	show_item( id );
    }
    // keep showing
    if ( sitedata[index]["open"] ){
    	if ( sitedata[index]["disapears"] ){
        deactivate_hover(sitedata[index+1]["id"]);
    	}
    }
  } else if ( sitedata[index]["type"] == "subsection" ){
    sitedata[index]["open"] = !sitedata[index]["open"];
    open_close_section( id );
    show_item( id );
  } else if ( sitedata[index]["type"] == "item" ){
  	if ( sitedata[index]["content_type"] == "image" ){
      show_item( id );
      deactivate_hover(id);
  	} else if ( sitedata[index]["content_type"] == "video" ){
  		sitedata[index]["open"] = !sitedata[index]["open"];
  		show_item( id );
  	} else {
      console.error("no type in array " + id + " at 'switch_item'");
    }
  } else {
    console.error("no type in array " + id + " at 'switch_item'");
  }
}


function open_close_section( id ){
  var index = getIntex(id);
  for ( var i=index+1; i<=parseInt(index)+parseInt(sitedata[index]["size"]); i++  ){
    if ( sitedata[index]["open"] ){
      show_item( sitedata[i]["id"] );
    } else {
      hide_item( sitedata[i]["id"] );
    }
  }
}



function activate_hover(id){
  var index = getIntex(id);
	if (sitedata[index]["nohover"]) return;
  document.getElementById("image_"+id+"_close_href").className = "image_"+id+"_close";
  document.getElementById("image_"+id+"_close_hrefimg").className = "picture_text";
  document.getElementById("picture_text_"+id).style.display = "";
  document.getElementById("image_"+id+"_close_href").style.cursor = "pointer";
}

function deactivate_hover(id){
  document.getElementById("image_"+id+"_close_href").className = "image_"+id+"_close_nohover";
  document.getElementById("image_"+id+"_close_hrefimg").className = "picture_text_nohover";
  document.getElementById("picture_text_"+id).style.display = "none";
  document.getElementById("image_"+id+"_close_href").style.cursor = "default";
}



