// CONFIG
var ext = new Array();
    ext['images'] = '.jpg .jpeg .png .gif';
    ext['movies'] = '.3gp .3gpp .mpg .mpeg .mp4 .mpeg4 .avi .wmv .flv .mov .asf .qt .swf';

var d = document;
var ajax = (window.ActiveXObject) ?  new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();

  function getAjax(file)
  {
    ajax.open('GET', file, false);
    ajax.send(null);
    
    return ajax.responseText;
  }
  
  // Load Content via Ajax
  function ajaxContent(objID, url)
  {
    d.getElementById(objID).innerHTML = getAjax(url);
  }

  function initPage()
  {
  //blur onfocus
    var tag = document.getElementsByTagName("a");
    for(i=0;i<tag.length;i++)
      tag[i].onfocus= function(){this.blur();};

  // init CSS-Styles
    var tag = d.getElementsByTagName("input");
    for(i=0;i<tag.length;i++)
    {
      if((tag[i].type == 'text' || tag[i].type == 'password') && tag[i].className != 'login' && tag[i].id != 'length')
      {
        tag[i].onfocus     = function(){ this.className = 'inputField_focus'; };
        tag[i].onmouseover = function(){ this.className = 'inputField_hover'; };
        tag[i].onmouseout  = function(){ this.className = 'inputField'; };
        tag[i].onblur      = function(){ this.className = 'inputField'; };
      }
    }
    var tag = d.getElementsByTagName("textarea");
    for(i=0;i<tag.length;i++)
    {
      if(tag[i].id != 'shout' && tag[i].id != 'comment')
      {
        tag[i].onfocus     = function(){ this.className = 'inputField_focus'; };
        tag[i].onmouseover = function(){ this.className = 'inputField_hover'; };
        tag[i].onmouseout  = function(){ this.className = 'inputField'; };
        tag[i].onblur      = function(){ this.className = 'inputField'; };
      }
    }
  //init sound
/*
    if(part != 'intro')
    {
      if(readCookie('sound') == 1)
      {
        d.getElementById('sound').firstChild.onclick = function() { playSound('stop') };
        playSound('play');
      } else d.getElementById('sound').firstChild.onclick = function() { playSound('play') };
    }
*/
    window.setTimeout("if(d.getElementById('blase')) d.getElementById('blase').style.display = 'none';", 13600);
  }
  
  function playSound(action)
  {
    switch(action)
    {
      case 'play':
      	d.getElementById('playSound').innerHTML = '<object data="'+baseURL + '/images/sound/start.swf'+'" type="application/x-shockwave-flash" width="0" height="0"><param name="movie" value="'+baseURL + '/images/sound/start.swf'+'" /></object>';
        d.getElementById('sound').firstChild.src = d.getElementById('sound').firstChild.src.replace(/\_off/, '_on');
        d.getElementById('sound').firstChild.onclick = function() { playSound('stop') };
        writeCookie('sound', 1);
      break;
      case 'stop':
  	    d.getElementById('playSound').innerHTML = '';
        d.getElementById('sound').firstChild.src = d.getElementById('sound').firstChild.src.replace(/\_on/, '_off');
        d.getElementById('sound').firstChild.onclick = function() { playSound('play') };
        writeCookie('sound', 'disabled');
      break;
    }
  }
  
  function writeCookie(name, value)
  {
    var expire = "";
        expire = new Date((new Date()).getTime() + 24 * 300 * 3600000);
        expire = "; expires=" + expire.toGMTString() + "; path = / ";
    d.cookie = name + "=" + escape(value) + expire;
  }
  
  function readCookie(name)
  {
    var cookieValue = "";
    var search = name + "=";
    if(d.cookie.length > 0) {
        offset = d.cookie.indexOf(search);
        if(offset != -1) {
            offset += search.length;
            end = document.cookie.indexOf(";", offset);
            if(end == -1) end = d.cookie.length;
            cookieValue = unescape(d.cookie.substring(offset, end))
        }
    }
    return cookieValue;
  }

  function submitForm(objID)
  {
    var tags = d.getElementById(objID).getElementsByTagName('input');
    for(var i=0;i<tags.length;i++)
    {
      if(tags[i].type == 'submit' ||(tags[i].type == 'button' && tags[i].className == 'submit')) {
        tags[i].disabled = true;
        tags[i].blur();
      } else if(tags[i].type == 'password' || tags[i].type == 'text') {
        tags[i].readonly = true;
      }
    }
    return;
  }

// INIT NAVIGATION
function initNavigation()
{
  var ms = new TransMenuSet(TransMenu.direction.down, 0, 14, TransMenu.reference.bottomLeft);		
// catch links
  var menu = Array();
  var tags = d.getElementById('navigation').getElementsByTagName('div');

  for(var i=0;i<tags.length;i++)
  {
    if(tags[i].className.indexOf('navKat') != -1)
    {
      tags[i].id = 'nK' + (i+1);
      menu[i] = ms.addMenu(tags[i]);
      
      var c=0;
      var links = tags[i].getElementsByTagName('a');
      for(var e=0;e<links.length;e++)
      {
        if(links[e].parentNode.className != 'navBox1')
        {
          var arrow = (links[e].className == 'moreLink') ? 1 : 0;
          menu[i].addItem(links[e].innerHTML, links[e].href, 0, 0, arrow);
          if(links[e].className == 'moreLink')
          {
            menu[i][e] = menu[i].addMenu(menu[i].items[c]);
            var sublinks = links[e].nextSibling.getElementsByTagName('a');
            for(var a=0;a<sublinks.length;a++)
            {
              menu[i][e].addItem(sublinks[a].innerHTML, sublinks[a].href, 0, 0);
            }
            c++;
          }
        }
      }
    }
  }

  TransMenu.renderAll();
}

function initTransMenu()
{
  TransMenu.initialize();
}

// ENCODE BASE64
  var base64s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
  function base64(decStr)
  {
   var bits;
   var dual;
   var i = 0;
   var encOut = '';
   while(decStr.length >= i + 3)
   {
    bits = (decStr.charCodeAt(i++) & 0xff) <<16 |
           (decStr.charCodeAt(i++) & 0xff) <<8  |
            decStr.charCodeAt(i++) & 0xff;
    encOut += base64s.charAt((bits & 0x00fc0000) >>18) +
              base64s.charAt((bits & 0x0003f000) >>12) +
              base64s.charAt((bits & 0x00000fc0) >> 6) +
              base64s.charAt((bits & 0x0000003f));
   }
   if(decStr.length -i > 0 && decStr.length -i < 3)
   {
    dual = Boolean(decStr.length -i -1);
    bits = ((decStr.charCodeAt(i++) & 0xff) <<16) |
           (dual ? (decStr.charCodeAt(i) & 0xff) <<8 : 0);
    encOut += base64s.charAt((bits & 0x00fc0000) >>18) +
              base64s.charAt((bits & 0x0003f000) >>12) +
              (dual ? base64s.charAt((bits & 0x00000fc0)
              >>6) : '=') +
              '=';
   }
   return(encOut);
  }

// VALIDATE EXTENSIONS
  function validateExtension(type, fileExt)
  {
    if(type != 'images' && type != 'movies')
    {
      var allowed = ext['movies'].split(' ');
      for(var i=0;i<allowed.length;i++)
      {
        if(fileExt == allowed[i])
        {
          return true;
          break;
        }
      }
    
      type = 'images';
    }
    
    var allowed = ext[type].split(' ');
    for(var i=0;i<allowed.length;i++)
    {
      if(fileExt == allowed[i])
      {
        return true;
        break;
      }
    }

    return false;
  }
  
function writeCookie(cookie,value)
{
  document.cookie = 'student24_'+cookie+"="+value+";";
}

// CHECK FORM
  function checkForm(formID, sid)
  {
    var err  = 0;
    var s    = d.getElementById('submitButton');
    var form = d.getElementById(formID);
        
    switch(formID)
    {
      case 'upload':
        var type = form['kat'].value.replace(/^([0-9]+)\_(images|movies|music)$/, '$2');
        var ex = form['file'].value.split('.');
        var fileExt = '.' + ex[ex.length-1].toLowerCase();

        if(empty(form['kat'].value))
        {
          alert(_choose_kat);
          form['kat'].focus();
          err = 1;
        } else if(empty(form['title'].value)) {
          alert(_add_title);
          form['title'].focus();
          err = 1;
        } /*else if(empty(form['description'].value) || form['description'].value.length < 3) {
          alert(_write_desc);
          form['description'].focus();
          err = 1;
        }*/ else if(empty(form['file'].value)) {
          alert(_choose_file);
          form['file'].focus();
          err = 1;
        } else if(!validateExtension(type, fileExt)) {
           alert(_file_ext + '\n\Videos: ' + ext['movies'] + '\Bilder: ' + ext['images']);
          form['file'].focus();
          err = 1;
        } else {
        
          writeCookie('desc', form['description'].value);
          writeCookie('title', form['title'].value);
          
          var chooses = (form['chooses']) ? '&chooses=' + form['chooses'].value : '';
          form.action = form.action + '&choose=' + (form['choosekats'].value) + '&kat=' + base64(form['kat'].value) + '&subkat=' + base64(form['subkat'].value) + '&title=' + base64(form['title'].value) + '&description='
                      + base64(form['description'].value) + '&type=' + type + '&ext=' + fileExt + chooses;

          d.getElementById(formID).submit();
          d.getElementById('kat').disabled = true;
          d.getElementById('subkat').disabled = true;
          d.getElementById('title').disabled = true;
          d.getElementById('description').disabled = true;
          d.getElementById('file').disabled = true;
          s.disabled = true;
          s.style.cursor = 'default';
          d.getElementById('kat').style.cursor = 'default';
          s.blur();

          var pb = d.getElementById('progress');
              pb.parentNode.parentNode.style.display = 'block';

          new ProgressTracker(sid,{
              		progressBar: pb,
              		onFailure: function(msg) {
              			pb.parentNode.parentNode.style.display = 'none';
              			alert(msg);
              		}
              	}, formID);
          return;
        }
      break;
      case 'registration':
        if(empty(form['user'].value))
        {
          alert(_choose_username);
          form['user'].focus();
          err = 1;
        } else if(form['user'].value.length < 4) {
          alert(_username_chars);
          form['user'].focus();
          err = 1;
        } else if(!form['user'].value.match(/^([a-zA-Z0-9_-]+)$/)) {
          alert(_username_invalid_chars);
          form['user'].focus();
          err = 1;
        } else if(empty(form['email'].value)) {
          alert(_enter_email);
          form['email'].focus();
          err = 1;
        } else if(form['email'].value.indexOf('@') == -1 || form['email'].value.indexOf('.') == -1) {
          alert(_invalid_email);
          form['email'].focus();
          err = 1;
        }
      break;
      case 'loginForm':
        if(empty(form['luser'].value))
        {
          alert(_insert_username);
          form['luser'].focus();
          err = 1;
        } else if(empty(form['lpass'].value)) {
          alert(_insert_pass);
          form['lpass'].focus();
          err = 1;
        }
      break;
    }

    if(err == 0)
    {
      d.getElementById(formID).submit();
      if(formID != 'loginForm')
      {
        s.disabled = true;
        s.blur();
      }
    } else return;
  }

// ADD FLASH CODE
  function generateFlash(objAttrs, params, embedAttrs)
  {
    var str = '<object ';
    for (var i in objAttrs)
      str += i + '="' + objAttrs[i] + '" ';
    str += '>';
    for (var i in params)
      str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    str += '<embed ';
    for (var i in embedAttrs)
      str += i + '="' + embedAttrs[i] + '" ';
    str += ' ></embed></object>';

    document.write(str);
  }
  function generateFlashMovie(objAttrs, params, embedAttrs)
  {
    var str = '<object ';
    for (var i in objAttrs)
      str += i + '="' + objAttrs[i] + '" ';
    str += '>';
    for (var i in params)
      str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    str += '<embed ';
    for (var i in embedAttrs)
      str += i + '="' + embedAttrs[i] + '" ';
    str += ' ></embed></object>';

    return str;
  }

  function addFlash()
  {
    var ret = getFlashArgs(arguments);
    generateFlash(ret.objAttrs, ret.params, ret.embedAttrs);
  }
  
  function addFlashMovie()
  {
    var ret = getFlashArgs(arguments);
    return generateFlashMovie(ret.objAttrs, ret.params, ret.embedAttrs);
  }

  function getFlashArgs(args)
  {
    var ret = new Object();
    ret.embedAttrs = new Object();
    ret.params = new Object();
    ret.objAttrs = new Object();
    for (var i=0; i < args.length; i=i+2){
      var currArg = args[i].toLowerCase();

      switch (currArg){
        case "pluginspage":
          ret.embedAttrs[args[i]] = args[i+1];
          break;
        case "src":
        case "movie":
          ret.embedAttrs["src"] = args[i+1];
          ret.params["movie"] = args[i+1];
          break;
        case "codebase":
          ret.objAttrs[args[i]] = args[i+1];
          break;
        case "width":
          ret.objAttrs[args[i]] = args[i+1];
          ret.embedAttrs["width"] = args[i+1];
          ret.params["width"] = args[i+1];
          break;
        case "height":
          ret.objAttrs[args[i]] = args[i+1];
          ret.embedAttrs["height"] = args[i+1];
          ret.params["height"] = args[i+1];
          break;
        case "flashvars":
          ret.objAttrs[args[i]] = args[i+1];
          ret.embedAttrs["flashvars"] = args[i+1];
          ret.params["flashvars"] = args[i+1];
          break;
        case "scale":
        default:
          ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
      }
    }

    ret.objAttrs["classid"] = "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000";
    ret.embedAttrs["type"] = "application/x-shockwave-flash";

    return ret;
  }
// TOOLS
  function empty(str)
  {
    if(str == '') return true;
  }

// ADD EVENT
  function addEvent(obj, evType, fn)
  {
    if(obj.addEventListener)
    {
      obj.addEventListener(evType, fn, false);
     return true;
    } else if (obj.attachEvent){
      var r = obj.attachEvent("on"+evType, fn);
      return r;
    } else return false;
  }

addEvent(window,'load',initPage);
addEvent(window,'load',initTransMenu);

// IE PNG FIX
 if(window.clipboardData && document.compatMode && !window.XMLHttpRequest)
 {
   var blankImg = baseURL + '/images/pngfix/blank.gif';

   d.styleSheets[0].addRule('img#hands', 'behavior: url(' + baseURL + '/images/pngfix/iepngfix.htc)');
 }
 
 //Länge bei Texteingaben
function maxlength(field, countfield) {
	if (field.value.length > 150)
	field.value = field.value.substring(0, 150);
	else
	countfield.value = 150 - field.value.length;
}

// CONFIRM DELETE
  function del(msg, form)
  {
    var r = confirm(msg.replace(/\+/g, ' '));
    return (r == true) ? (form ? checkForm(form) : true) : false;
  }
  
// Follow Link
  function goTo(lnk)
  {
    d.location.href = lnk;
  }
  
  var kats = 0, subkats = 0;
  function switchKatChoose(checked)
  {
    if(kats == 0) kats = d.getElementById('kats').innerHTML;
    if(subkats == 0) subkats = d.getElementById('subkats').innerHTML;

    if(checked)
    {
      d.getElementById('choosekats').value = 1;
      d.getElementById('kats').innerHTML = '<label for="kat">' + _upload_cat + ':</label><input type="text" class="inputField" id="kat" name="kat" />';  
      d.getElementById('subkats').innerHTML = '<div><label for="subkat">' + _upload_subcat + ':</label><input type="text" class="inputField" id="subkat" name="subkat" /></div>';  
    } else {
      d.getElementById('choosekats').value = 0;
      d.getElementById('kats').innerHTML = kats;
      d.getElementById('subkats').innerHTML = '';
    }
  }
  
  var subkatss = 0;
  function switchSubKatChoose(checked)
  {
    if(subkatss == 0) subkatss = d.getElementById('subkatss').innerHTML;

    if(checked)
    {
      d.getElementById('choosekats').value = 1;
      d.getElementById('subkatss').innerHTML = '<label for="subkat">' + _upload_subcat + ':</label><input type="text" class="inputField" id="subkat" name="subkat" />';  
    } else {
      d.getElementById('subkatss').innerHTML = '';
      d.getElementById('choosekats').value = 0;
      ajaxContent('subkats', baseURL + '/ajax.php?type=subkats&kat=9');
    }
  }

  function fullscreen(href)
  {
    myLightbox.initialize();
    myLightbox.start();
       
    Element.hide('video');
    
    if(!$('videoFullscreen'))
    {
      var v = document.createElement('div');
          v.id = 'videoFullscreen';
      
      document.body.appendChild(v);
    } else Element.show('videoFullscreen');
 
    document.getElementById('videoFullscreen').innerHTML = addFlashMovie(  
                                                              'src',        baseURL + '/images/flvplayer/flvplayer.swf',
                                                              'flashvars', '&file=' + href + '&displayheight=607&usefullscreen=false&autostart=true&overstretch=true&backcolor=0x000000&frontcolor=0xffffff',
                                                              'width',     '646',
                                                              'height',    '436',
                                                              'quality',   'high',
                                                              'wmode',     'transparent' 
                                                            ) + '<div id="closeFullscreen"><a href="javascript:myLightbox.end()">' + _back + '</a></div>';

    return false;
  }
