function slideshow(url) {
  swpopup = window.open(url,'slideshow','width=640,height=480,resizable=no,status=no');
  if (window.swpopup) {
    window.swpopup.focus();
  }
}

function imagepopup(url) {
  imgpopup = window.open(url,'imgpopup','width=640,height=480,resizable=no,status=no');
  if (window.imgpopup) {
    window.imgpopup.focus();
  }
}

function submitVoting(vtid,link,formname) {
  var answer = "";
  if (answers = document.getElementById("voting"+vtid).answer[0]) {
    answers = document.getElementById("voting"+vtid).answer;
    for (var i=0; i<answers.length; i++)
      if ((answers[i].checked) && (answer == ""))
        answer = '?answer='+answers[i].value;
  }
  document.getElementById("voting"+vtid+"poll").style.display = "none";
  document.getElementById("voting"+vtid+"poll").style.visibility = "hidden";
  document.getElementById("voting"+vtid+"done").style.display = "block";
  document.getElementById("voting"+vtid+"done").style.visibility = "visible";
  showVotingResult(vtid,link+answer);
}

function showVotingResult(vtid,link) {
  vtpopup = window.open(portalbase+link,'voting','resizable=no,width=505,height=425,scrollbars=no');
  if (window.vtpopup) {
    window.vtpopup.focus();
  }
}

function sendArticle(url) {
  sapopup = window.open(url,'send_article','width=640,height=480,resizable=no,status=no');
  if (window.sapopup) {
    window.sapopup.focus();
  }
}

function portalPopup(url, windowname, style, returncode) {
	var cwin = window.open(url,windowname,style);
	if (window.focus) { cwin.focus(); }
	if ( returncode != true && returncode != "true" ) {
		returncode = false;
	}
	return returncode;
}

// constructor
function FormDataReader() {
    this.data = new Array();
}

// reads the form data and writes them into an array
FormDataReader.prototype.read = function(formObj) {
    this.data["action"] = formObj.action;
    for(i=0; i<formObj.elements.length; i++) {
        el = formObj.elements[i];
        switch(el.type) {
            case "radio":           if(el.checked) {
                                        this.data[el.name] = el.value;
                                    }
                                    break;
                                    
            case "checkbox":        var arrName = el.name.replace(/\[\]/, '');
                                    if(!this.data[arrName]) this.data[arrName] = new Array();
                                    if(el.checked) {
                                        this.data[arrName][this.data[arrName].length] = el.value;
                                    }
                                    break;
                                    
            case "select-one":      this.data[el.name] = el.value;
                                    break;
                                    
            case "select-multiple": var arrName = el.name.replace(/\[\]/, '');
                                    if(!this.data[arrName]) this.data[arrName] = new Array();
                                    for(k=0; k<el.options.length; k++) {
                                        if(el.options[k].selected) {
                                            this.data[arrName][this.data[arrName].length] = el.options[k].value;
                                        }
                                    }
                                    break;
                                    
            //case "submit":          break;
            
            case "reset":           break;
            
            case "password":        this.data[el.name] = el.value;
            
            default:                this.data[el.name] = el.value;
        }
    }
}


// constructor
function GetStringBuilder() {
    this.urlString = '';
}

// builds and returns a GET string
// expects associative array
GetStringBuilder.prototype.getUrlString = function(data, suppressEmptyFields) {
    
    if (data["action"].indexOf("http")!=0){
    
	  if (data["action"].indexOf("/")==0 &&
	  		portalbase.length > 0 &&
	  		(portalbase.lastIndexOf("/")==(portalbase.length-1))>0)
		data["action"] = data["action"].substring(1,data["action"].length);

      this.urlString += portalbase;
    }
    
    this.urlString += data["action"];
    
    var count = 0;
    
    if (this.urlString.indexOf("?")>0) count++;
    
    for(el in data) {
        if(el == "action") {
            continue;
        }
        if(data[el] == '') {
            if(suppressEmptyFields) {
                continue;
            } else {
                this.urlString += (count == 0)? '?' : '&';
                this.urlString += el + '=';
            }
        }
        if(data[el].match && data[el].match(/\w+/)) {
            this.urlString += (count == 0)? '?' : '&';
            this.urlString += el + '=' + encodeURI(data[el]);
        } else {
            for(k=0; k<data[el].length; k++) {
                this.urlString += (count == 0)? '?' : '&';
                this.urlString += el + '=' + encodeURI(data[el][k]);
            }
        }
        count++;
    }
    return this.urlString;
}

function processForm(formObj, name, style) {
    myFormDataReader    = new FormDataReader();
    myGetStringBuilder  = new GetStringBuilder();
    myFormDataReader.read(formObj);

    var popup = window.open(myGetStringBuilder.getUrlString(myFormDataReader.data, true), name, style);
    return false;
}
// gmx specific functions
function faq_gmx(nav) {
  faq = window.open("http://faq.gmx.de/" + nav ,"faq_gmx", "resizable=yes,width=700,height=500,scrollbars=yes");
  if (window.faq) {
    window.faq.focus();
  }
}
