/**
 * @author Daniel Schwerdtner
 * @copyright Welke Online GmbH & Co. KG, 2009
 * @since 09/09/2009
 * 
 * JavaScript handling of specific cookies:
 * - welkefilthausConfigCookie: play flash movie on configurator sites
 */

/**
 * called by flash movie
 */
function closeVideoLayer()
{
    if (navigator.appVersion.indexOf("MSIE") != -1) {
        try {
            document.getElementById('myFlashMovie').innerHTML = '';
        }
        catch (e){
        }
    }
    else {
        try {
            setSoundStatus('1');
            /*window.onload = function() 
            {
                (document.all && !window.print) ? null : setSoundStatus('1');
            };*/
        } 
        catch (e) {
        }
    }
    
    try {
        document.getElementById('myFlashMovie').style.display = 'none';
        //document.getElementById('flash').style.display = 'none';
        document.getElementById('stillImg').style.display = 'block';
    } 
    catch (e) {
    }
    
    /*if (navigator.appVersion.indexOf("MSIE") != -1) {
        var days = -30;
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
        
        document.cookie = 'welkefilthausMainpageCookie=false' + expires;
    }
    else {*/
        var days = 30;
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
        
        document.cookie = 'welkefilthausMainpageCookie=false' + expires;
    /*}*/
}

function playFlash(movieInfo)
{
    if (navigator.appVersion.indexOf("MSIE") != -1) {
        try {
            /*document.getElementById('myFlashMovie').style.display = 'block';
            document.getElementById('flash').style.display = 'block';
            document.getElementById('stillImg').style.display = 'none';
            //createObjectTag(movieInfo);
            setSoundStatus(0);*/
            document.getElementById('myFlashMovie').innerHTML = createObjectTag(movieInfo);
            document.getElementById('myFlashMovie').style.display = 'block';
            document.getElementById('stillImg').style.display = 'none';           
            var myFlashMovie = document.getElementById("flash");
            myFlashMovie.myFunctionId();
        }
        catch (e){
        }
    }
    else {
        try {
        
            setSoundStatus(0);
            document.getElementById('myFlashMovie').style.display = 'block';
            //document.getElementById('flash').style.display = 'block';
            document.getElementById('stillImg').style.display = 'none';
        } 
        catch (e) {
        }
    } 
}

/**
 * function sets flash content depending on cookie-value
 */
function setFlashContent(cookieName)
{
    if(getCookie(cookieName) == 'false')
    {
        closeVideoLayer();
    }
    /*else
    {
        playFlash();
    }*/
}

/**
 * function sets sound on/off
 */
function setSoundStatus(soundValue)
{
    setFlashVar(soundValue,'sound');
}

/**
 * function sets flashVars for mainpage flash movie depending on cookie-value
 * @param {Object} cookieName
 */
function setFlashRepeated(cookieName)
{
    if(getCookie(cookieName) == 'false')
    {
        if (getCookie('welkefilthausMainpageCookieRepeat') == 'false') {
            setFlashVar(1, 'user');
            closeVideoLayer();
            if (navigator.appVersion.indexOf("MSIE") != -1) {
                var days = -30;
                var date = new Date();
                date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
                var expires = "; expires=" + date.toGMTString();
                
                document.cookie = 'welkefilthausMainpageCookieRepeat=false' + expires;
            }
        }
        else {
            /*setFlashVar(1, 'user');
            playFlash();*/
            closeVideoLayer();
            
            /*if (navigator.appVersion.indexOf("MSIE") != -1) {
                var days = -30;
                var date = new Date();
                date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
                var expires = "; expires=" + date.toGMTString();
                
                document.cookie = 'welkefilthausMainpageCookieRepeat=false' + expires;
            }
            else {*/
                var days = 30;
                var date = new Date();
                date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
                var expires = "; expires=" + date.toGMTString();
                
                document.cookie = 'welkefilthausMainpageCookieRepeat=false' + expires;
            /*}*/
        }
    }
    else
    {
        setFlashVar(0,'user'); 
    } 
}

function setFlashVar(paramValue, type)
{
    var movies = document.getElementById('flash');
    var flashvars;
    var flashvarsArray;
    
    try {
        var myObj = movies.childNodes;
        for (var i = 0; i < myObj.length; i++) {
            if (myObj[i].name == 'flashvars') {
                var flashv = myObj[i].value;
                break;
            }
        }
        
        flashvarsArray = flashv.split('&');
        
        switch (type) {
            case 'sound':
                for (var i = 0; i < movies.childNodes.length; i++) {
                    if (movies.childNodes[i].name == 'flashvars') {
                        movies.childNodes[i].value = 'soundOff=' + paramValue + '&' + flashvarsArray[1];
                        break;
                    }
                }
                break;
                
            case 'user':
                for (var i = 0; i < movies.childNodes.length; i++) {
                    if (movies.childNodes[i].name == 'flashvars') {
                        movies.childNodes[i].value = flashvarsArray[0] + '&repeatedUser=' + paramValue;
                        break;
                    }
                }
                break;
                
            default:
                for (var i = 0; i < movies.childNodes.length; i++) {
                    if (movies.childNodes[i].name == 'flashvars') {
                        movies.childNodes[i].value = 'soundOff=0&repeatedUser=0';
                        break;
                    }
                }
                break;
        }
    }
    catch (e) {        
    }
}

/**
 * delete an HTML-ELEMNT with given id
 * @param {Object} id
 */
function deleteHTMLTag(id)
{
    var toDelete = document.getElementById(id);
    toDelete.parentNode.removeChild(toDelete);
}

/**
 * create an new HTML-Object-Tag 
 * @param {Object} movieInfo
 */
function createObjectTag(movieInfo)
{
    /*var objectTag = document.createElement('object');
    objectTag.setAttribute('id','flash');
    objectTag.setAttribute('type','application/x-shockwave-flash');
    objectTag.setAttribute('data','uploads/tx_yejjswfobject/'+movieInfo+'.swf');
    objectTag.setAttribute('width','614');
    objectTag.setAttribute('height','270');
    
    var paramTag = document.createElement('param');
    paramTag.setAttribute('name','base');
    paramTag.setAttribute('value','http://www.filthaus.de/');
    objectTag.appendChild(param);
    
    paramTag = document.createElement('param');
    paramTag.setAttribute('name','wmode');
    paramTag.setAttribute('value','opaque');
    objectTag.appendChild(param);
    
    paramTag = document.createElement('param');
    paramTag.setAttribute('name','swfLiveconnect');
    paramTag.setAttribute('value','true');
    objectTag.appendChild(param);
    
    paramTag = document.createElement('param');
    paramTag.setAttribute('name','flashvars');
    if(movieInfo == 'startseite') {
        paramTag.setAttribute('value','soundOff=0&repeatedUser=1');
    }
    else{
        paramTag.setAttribute('value','soundOff=0&repeatedUser=0');
    }    
    objectTag.appendChild(param);*/
   
    var objectTag = '<object id="flash" type="application/x-shockwave-flash" data="uploads/tx_yejjswfobject/'+movieInfo+'.swf" width="614" height="270">';
    objectTag += '<param name="base" value="http://www.filthaus.de/" />';
    objectTag += '<param name="wmode" value="opaque" />';
    objectTag += '<param name="swfLiveconnect" value="true" />';
    if (movieInfo == 'startseite') {
        objectTag += '<param name="flashvars" value="soundOff=0&repeatedUser=1" />';
    }
    else
    {
        objectTag += '<param name="flashvars" value="soundOff=0&repeatedUser=0" />';
    }
    
    objectTag += '<param name="movie" value="uploads/tx_yejjswfobject/' + movieInfo + '.swf" />';
    
    //document.getElementById('myFlashMovie').appendChild(object);
    return objectTag;
}

/**
 * gets a cookie's value by given cookie name
 * @param {Object} name
 */
function getCookie(name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
      return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break;
  }
  return null;
}

function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr));
}

/**
 * Function gets all <tags> with a given className
 * @param {Object} clsName the className
 * @return the <tags> as array
 */
function getElementsByClassName(clsName)
{
    var retVal = new Array();
    var elements = document.getElementsByTagName("*");
    for(var i = 0;i < elements.length;i++)
    {
        if(elements[i].className.indexOf(" ") >= 0)
        {
            var classes = elements[i].className.split(" ");
            for(var j = 0;j < classes.length;j++)
            {
                if(classes[j] == clsName)
                    retVal.push(elements[i]);
            }
        }
        else if(elements[i].className == clsName)
            retVal.push(elements[i]);
    }
    return retVal;
}