// 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';
    ext['music']  = '.3gp .3gpp .mpg .mpeg .mp4 .mpeg4 .avi .wmv .flv .mov .asf .qt';

var d = document;
  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].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
  var actNav;
  function initNavigation()
  {
    var imgArr = new Array();
    var tags = d.getElementById('navi').getElementsByTagName('a');
    for(var i=0;i<tags.length;i++)
    {
      if(tags[i].className == 'n')
      {
        imgArr[i] = new Image();
        imgArr[i].src = tags[i].firstChild.src.replace(/\.jpg/, '_hover.jpg');

        tags[i].onmouseover = function() {
          hideActualNav('unset');
          this.firstChild.src = this.firstChild.src.replace(/\.jpg/, '_hover.jpg');
          setSubNavi(this.id);
        };
      }
    }
// Load misc images
    i++;
    imgArr[i] = new Image();
    imgArr[i].src = './images/icons/subnavi_arrow.jpg';
  }

  function hideActualNav(type)
  {
    var tags = d.getElementById('navi').getElementsByTagName('a');
    for(var i=0;i<tags.length;i++)
    {
      if(tags[i].className == 'n')
      {
        tags[i].firstChild.src = tags[i].firstChild.src.replace(/\_hover\.jpg/, '.jpg');
      }
    }
  }

  function setSubNavi(objID)
  {
    var tags = d.getElementById('navlinks').getElementsByTagName('div');
    for(var i=0;i<tags.length;i++)
    {
      tags[i].style.display = 'none';
    }
    if(d.getElementById('nav_' + objID)) d.getElementById('nav_' + objID).style.display = 'block';
  }

// 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)
  {
    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('Please choose a category!');
          form['kat'].focus();
          err = 1;
        } else if(empty(form['title'].value)) {
          alert('Please add a title!');
          form['title'].focus();
          err = 1;
        } else if(empty(form['description'].value) || form['description'].value.length < 3) {
          alert('Please write a short description!');
          form['description'].focus();
          err = 1;
        } else if(empty(form['file'].value)) {
          alert('Please choose the file, you want to upload!');
          form['file'].focus();
          err = 1;
        } else if(!validateExtension(type, fileExt)) {
           alert('The file you have choosen have an invalid extension or you selected a wrong category!\nThe following extensions are allowed:\n\nMovies: ' + ext['movies'] + '\nImages: ' + ext['images']);
          form['file'].focus();
          err = 1;
        } else {
        
          writeCookie('desc', form['description'].value);
          writeCookie('title', form['title'].value);
          
          
          form.action = form.action + '&kat=' + base64(form['kat'].value) + '&title=' + base64(form['title'].value) + '&description='
                      + base64(form['description'].value) + '&type=' + type + '&ext=' + fileExt;

          d.getElementById(formID).submit();
          d.getElementById('kat').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('Please choose your username!');
          form['user'].focus();
          err = 1;
        } else if(form['user'].value.length < 4) {
          alert('Your username must contain at least 4 chars!');
          form['user'].focus();
          err = 1;
        } else if(!form['user'].value.match(/^([a-zA-Z0-9_-]+)$/)) {
          alert('The allowed characters for the username are:\nletters (a-z), numbers (0-9), underscore (_) and dash (-)!');
          form['user'].focus();
          err = 1;
        } else if(empty(form['email'].value)) {
          alert('Please type in your email adress!');
          form['email'].focus();
          err = 1;
        } else if(form['email'].value.indexOf('@') == -1 || form['email'].value.indexOf('.') == -1) {
          alert('Your email adress seems to be incorrect!');
          form['email'].focus();
          err = 1;
        }
      break;
      case 'loginForm':
        if(empty(form['luser'].value))
        {
          alert('Please insert your username!');
          form['luser'].focus();
          err = 1;
        } else if(empty(form['lpass'].value)) {
          alert('Please insert your password!');
          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 addFlash()
  {
    var ret = getFlashArgs(arguments);
    generateFlash(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);

// 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;
}
