// ------------------------------------------------------------------
// FUP GENERALS
// ------------------------------------------------------------------

// Init
var loading_complete=false;
var wu_fe_init_stack=new Array();
window.onload=wu_fe_init;

// preloader
function wu_fe_init()
{
    // OnLoad Init
    for (var a=0; a<wu_fe_init_stack.length; a++) {eval(wu_fe_init_stack[a]);}

    loading_complete=true;
}

// ------------------------------------------------------------------
// Teaser Logs
// ------------------------------------------------------------------
var teaser_log_done=false;
function teaser_log(url,obj)
{
    // asynchroner log loader
    window.setTimeout("teaser_log_load('"+url+"')",1);

    // adview-mode (kein link objekt)
    if (!obj) {return;}

    // load-control
    var now=new Date().getTime();
    var time_limit=now+500;
    while(!teaser_log_done && now<time_limit) {now=new Date().getTime();}

    return;
}

function teaser_log_load(url)
{
    teaser_log_done=false;
    var myscript=document.createElement("script");
    myscript.setAttribute("src",url+"&cachekiller="+new Date().getTime());
    document.getElementsByTagName("body")[0].appendChild(myscript);
}


// ------------------------------------------------------------------
// Poll Logs
// ------------------------------------------------------------------
var poll_log_done=false;
function poll_log(url,obj)
{
    // asynchroner log loader
    window.setTimeout("poll_log_load('"+url+"')",1);

    // adview-mode (kein link objekt)
    if (!obj) {return true;}

    // load-control
    var now=new Date().getTime();
    var time_limit=now+500;
    while(!poll_log_done && now<time_limit) {now=new Date().getTime();}

    return true;
}
function poll_log_load(url)
{
    poll_log_done=false;
    var myscript=document.createElement("script");
    myscript.setAttribute("src",url+"&cachekiller="+new Date().getTime());
    document.getElementsByTagName("body")[0].appendChild(myscript);
}


// ClickEnlargePopUp
function click_enlarge(url,width,height)
{
    //var win = window.open(url,"clickEnlarge","width="+width+", height="+height+", scrollbars=1, menubar=0");
    createPopup(url,"clickEnlarge","width="+width+", height="+height+", scrollbars=1, menubar=0");
}


// generische PopUp-Funktion f?r URLs aus dem Linkbuilder
function popup(url)
{
    //window.open(url,"_blank","width=800; height=600;");
    createPopup(url,"_blank","width=800; height=600;");
}

// PrintPopUp
function print_popup(url)
{
    //window.open(url,"_blank","width=675, height=600, scrollbars=yes, menubar=yes, resizable=yes");
    createPopup(url,"_blank","width=675, height=600, scrollbars=yes, menubar=yes, resizable=yes");
}

/**
 * RecipeReview Popup
 * 
 * @deprecated
 */
function recipe_review_popup(url)
{
    //window.open(url,"_blank","width=470, height=560, scrollbars=1, menubar=1");
    createPopup(url,"_blank","width=470, height=560, scrollbars=1, menubar=1");
}

// ImageGalleryPopUp
function image_gallery_popup(url)
{
    //var image_gallery=window.open(url,"image_gallery","width=435, height=540, scrollbars=0, menubar=0");
    //image_gallery.focus(); // kann fehler werfen!
    createPopup(url, "image_gallery", "width=435, height=540, scrollbars=0, menubar=0");
}

/**
 * ?ffnet ein Popup und baut eine URL aus den META Daten des HTML-Dokuments zusammen.
 *
 * @param {String} url
 */
function sendtoafriend_popup(url)
{
    var url_int=document.getElementsByName("wu_url_int");
    var url_param=document.getElementsByName("wu_url_param");
    var url_txt=document.getElementsByName("wu_url_txt");

    if (url.indexOf("?")<0) {url+="?";} else {url+="&";}
    url+="sendtoafriend_url_int="+encodeURIComponent(url_int[0].content);
    url+="&sendtoafriend_url_param="+encodeURIComponent(url_param[0].content);
    url+="&sendtoafriend_url_txt="+encodeURIComponent(url_txt[0].content);
    //window.open(url,"_blank","width=487, height=530, scrollbars=1, menubar=0");
    
    createPopup(url,"_blank","width=487, height=530, scrollbars=1, menubar=0");
}



/**
 * Zentrale Popup Funtion, bitte nur noch diese nutzen, die anderen werden nach 
 * und nach angepasst. Es können auch Wrapper verwendet werden, aber diese 
 * Methode sollte dann aufegrufen werden!
 * 
 * @author chuenniger 
 * @param string url
 * @param string windowtitle
 * @param string properties
 * 
 * @return bool
 */
function createPopup(url, windowtitle, properties)
{
    if (!url) {
        return false;
    }
    
    if (!windowtitle) {
        windowtitle = '_self';
    }
    
    if (!properties) {
        properties = '';
    }
    
    var win = window.open(url, windowtitle, properties);
    
    if (win != null) {
        win.focus();
    }
    
    return true;
}




function check_url_escaping(myUrl)
{
    if (myUrl.substr(0,7)=="http%3A") {return unescape(myUrl);}
    else {return myUrl;}
}

function get_metawurst()
{
    var mfs_url="";
    var obj_url_int=document.getElementsByName("wu_url_int");
    var obj_url_param=document.getElementsByName("wu_url_param");
    if (obj_url_int && obj_url_int[0])
    {
        mfs_url="http://"+document.location.hostname;
        mfs_url+=obj_url_int[0].content;
        if (obj_url_param && obj_url_param[0].content) {mfs_url+="?"+obj_url_param[0].content;}
    }
    return mfs_url;
}


// ------------------------------------------------------------------
// mellow RollOvers
// ------------------------------------------------------------------
var arr_img_preload = new Array();

arr_img_preload[0] = new Image();
arr_img_preload[0].src = "/img/general/arrow_1.gif";


var button_clicked = "none";
var tmp_img_name_over = "";

function img_swap(img_name, status)
{
    // create a reference of the image-object
    var img_reference = "";
    if(!(img_reference = document.images[img_name]))
    {
        if(this.ua == "ns4")
        {
            for(var i = 0; i < document.layers.length; i++)
            {
                if((img_reference = document.layers[i].document.images[img_name]))
                {
                    break;
                }
            }
        }

        // for the rollovers with two pics
        if(!img_reference)
        {
            img_reference = document.images[img_name+"1"];
            if(!img_reference && (this.ua == "ns4"))
            {
                for(var i = 0; i < document.layers.length; i++)
                {
                    if((img_reference = document.layers[i].document.images[img_name + "1"]))
                    {
                        break;
                    }
                }
            }

            if(img_reference)
            {
                img_swap(img_name + "1", status);
                img_swap(img_name + "2", status);
            }
        }
    }

    // swap the image
    var regexpr_img_name = new RegExp("^" + this.button_clicked + "[1-2]?$");
    if(img_reference && !regexpr_img_name.test(img_name))
    {
        img_reference.src = img_reference.src.replace(/_[0-1]\./, "_" + status + ".");
    }

    // set the tmp_img_name_over-variable
    if(status == 1) {this.tmp_img_name_over = img_name;} else {this.tmp_img_name_over = "";}
}

function hi(img)    {img_swap(img,1);}
function lo(img)    {img_swap(img,0);}

function sn_hi(obj) {if(obj.parentNode.className!='subnaviLevel1Active'){obj.parentNode.className='subnaviLevel1Active';}}
function sn_lo(obj) {if(obj.parentNode.className!='subnaviLevel1')        {obj.parentNode.className='subnaviLevel1';}}



function run_by_commit(myurl, mytxt, txt_is_hex)
{
    if(txt_is_hex == 1) { mytxt=unescape(mytxt); }
    if(confirm(mytxt)) document.location.href=myurl;
}




function AC_Generateobj(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 AC_FL_RunContent()
{
    var ret = AC_GetArgs ( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000", "application/x-shockwave-flash");
    AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent()
{
    var ret =
    AC_GetArgs ( arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000", null );
    AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}


function AC_GetArgs(args, ext, srcParamName, classid, mimeType)
{
  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 "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];

        break;

      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace":
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "id":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}