function checkvoting() {
	count = 0
	el = document.voting.elements['co_tresult']
	for (x = 0; x < el.length; x++) {
		if (el[x].checked)
			count++
	}

	if (count > 3) {
		alert("Bitte wählen Sie maximal 3 Favoriten aus.")
	}
}

function validateVoting() {

	if (getCookie("swc_malwettbewerb") == "1") {
		alert("Für dieses Voting haben Sie bereits abgestimmt.");
		return false;
	}
	count = 0
	el = document.voting.elements['co_tresult']
	for (x = 0; x < el.length; x++) {
		if (el[x].checked)
			count++
	}

	if (count == 0) {
		alert("Bitte wählen Sie mindestens einen Favoriten aus.")
		return false
	} else {
		return true
	}

	if (count > 3) {
		alert("Bitte wählen Sie maximal 3 Favoriten aus.")
		return false
	} else {
		return true
	}
}

function hideOverlay(){
document.getElementById('SWC_OVERLAY').style.display='none'
document.getElementById('SWC_OVERLAY_SHADOW').style.display='none'
}

function multi(id, all){
ids = all.split(",")
for(x=0;x<ids.length;x++)
{
el = document.getElementById(ids[x])
tab = document.getElementById("tab_" + ids[x])
if(id==ids[x]){
el.style.display = ""
tab.className = "cmsTabActive"
} else {
el.style.display = "none"
tab.className = "cmsTabInactive"
}
}
}

function multiAll(all){
ids = all.split(",")
for(x=0;x<ids.length;x++)
{
el = document.getElementById(ids[x])
el.style.display = ""
}


}

// -----------------------------------------------------------------

doStatusBar = function (strText)
{
window.status = strText;
}

// -----------------------------------------------------------------

function doMailTo(strName, strDomain)
{

if (document.system.errorid.value != "") {
strSubject = "?Subject=Seite nicht gefunden: " + document.system.errorid.value;
} else {
strSubject = "";
}
location.href = "mailto:" + strName + "@" + strDomain + strSubject;
}

// -----------------------------------------------------------------

function doClear(el, str)
{
if (el.value == str) {el.value = ""};
}

// -----------------------------------------------------------------

function doUnclear(el,str)
{
if (el.value == "") {el.value = str};
}

// -----------------------------------------------------------------

function doPopup(url, width, height, scroll)
{
var w = width ? width : 650;
var h = height ? height : 400;
var sc = scroll ? scroll : "yes"

theurl = url

posx = (screen.width - w) / 2
posy = (screen.height - h) / 2
mywin = window.open(theurl, "popup", "scrollbars=" + scroll + ", toolbar=no, resizable=no, location=no, status=no, width="+w+", height="+h+", top="+posy+", left="+posx);
mywin.focus();
}

// -----------------------------------------------------------------

function doPopupPrint(width, height, scroll,theurl)
{
var w = width ? width : 650;
var h = height ? height : 400;
var sc = scroll ? scroll : "yes"
lhref = location.href
if(lhref.indexOf('.html')==-1){lhref+='/DB/NGC/ngc_cms.nsf/content/index.html?Open'}
posx = (screen.width - w) / 2
posy = (screen.height - h) / 2
mywin = window.open(lhref+"&template=Print", "popup", "scrollbars=" + scroll + ", toolbar=no, resizable=no, location=no, status=no, width="+w+", height="+h+", top="+posy+", left="+posx);
mywin.focus();
}

// -----------------------------------------------------------------

function doOpen(url){
   if(window.opener!=null){
      window.opener.location.href=url;
      self.close()
   } else {
      location.href=url
   }
}

// -----------------------------------------------------------------

function getServerName()
{
     SystemForm = document.system;
     return SystemForm.server_name.value;
}

// -----------------------------------------------------------------

function getQueryString()
{
     SystemForm = document.system;
     return SystemForm.query_string.value;
}

// -----------------------------------------------------------------

function validateFields(myform)
{
     var err = 0;
     var msg = "";
     
     fields = myform.fieldsToValidate.value.split(", ");
     for(i=0;i<fields.length;i++)
     {
          if( myform.elements[fields[i].split("|")[0]].value == "" )
          {
               err++;
               msg+= "- " + fields[i].split("|")[1] + "\n"
          }
     }
     if (err!=0)
     {
          alert("Folgende Felder müssen ausgefüllt werden:\n\n" + msg);
          return false;
     }
     else
     {
          return true;
     }      
}

// -----------------------------------------------------------------

function validateRadio(formName, fieldName)
{
     var ret = false;
     for(x=0; x < document.forms[formName].elements[fieldName].length; x++)
     {
          if(document.forms[formName].elements[fieldName][x].checked == true)
          {
                ret = true
          }
     }
     if(! ret){alert('Bitte treffen Sie eine Auswahl!')}
     return ret;
}

// -----------------------------------------------------------------

/*Copyright 1996 - Tomer and Yehuda Shiran
Feel free to "steal" this code provided that you leave this notice as is.
Additional examples from the book can be found at http://www.geocities.com/SiliconValley/9000/
For more information contact Tomer or Yehuda Shiran <yshiran@iil.intel.com>*/

// setCal()

function getTime() {
// initialize time-related variables with current time settings
var now = new Date()
var hour = now.getHours()
var minute = now.getMinutes()
now = null
var ampm = "" 

// validate hour values and set value of ampm
if (hour >= 12) {
hour -= 12
ampm = "PM"
} else
ampm = "AM"
hour = (hour == 0) ? 12 : hour

// add zero digit to a one digit minute
if (minute < 10)
minute = "0" + minute // do not parse this number!

// return time string
return hour + ":" + minute + " " + ampm
}

function leapYear(year) {
if (year % 4 == 0) // basic rule
return true // is leap year
/* else */ // else not needed when statement is "return"
return false // is not leap year
}

function getDays(month, year) {
// create array to hold number of days in each month
var ar = new Array(12)
ar[0] = 31 // January
ar[1] = (leapYear(year)) ? 29 : 28 // February
ar[2] = 31 // March
ar[3] = 30 // April
ar[4] = 31 // May
ar[5] = 30 // June
ar[6] = 31 // July
ar[7] = 31 // August
ar[8] = 30 // September
ar[9] = 31 // October
ar[10] = 30 // November
ar[11] = 31 // December

// return number of days in the specified month (parameter)
return ar[month]
}

function getMonthName(month) {
// create array to hold name of each month
var ar = new Array(12)
ar[0] = "Januar"
ar[1] = "Februar"
ar[2] = "M&auml;rz"
ar[3] = "April"
ar[4] = "Mai"
ar[5] = "Juni"
ar[6] = "Juli"
ar[7] = "August"
ar[8] = "September"
ar[9] = "Oktober"
ar[10] = "November"
ar[11] = "Dezember"

// return name of specified month (parameter)
return ar[month]
}

function setCal() {
// standard time attributes
var now = new Date()
var year = now.getYear()
if (year < 1000)
year+=1900
var month = now.getMonth()
var monthName = getMonthName(month)
var date = now.getDate()
now = null

// create instance of first day of month, and extract the day on which it occurs
var firstDayInstance = new Date(year, month, 1)
var firstDay = firstDayInstance.getDay()
firstDayInstance = null

// number of days in current month
var days = getDays(month, year)

// call function to draw calendar
drawCal(firstDay + 1, days, date, monthName, year)
}

function drawCal(firstDay, lastDate, date, monthName, year) {
// constant table settings
var headerHeight = 50 // height of the table's header cell
var border = 2 // 3D height of table's border
var cellspacing = 4 // width of table's border
var headerColor = "midnightblue" // color of table's header
var headerSize = "0" // size of tables header font
var colWidth = 10 // width of columns in table
var dayCellHeight = 25 // height of cells containing days of the week
var dayColor = "darkblue" // color of font representing week days
var cellHeight = 10 // height of cells representing dates in the calendar
var todayColor = "red" // color specifying today's date in the calendar
var timeColor = "purple" // color of font representing current time

// create basic table structure
var text = "" // initialize accumulative variable to empty string
text += '<CENTER>'
text += '<TABLE class=calendar cellpadding=0 cellspacing=1>' // table settings
text += '<TH COLSPAN=7>' // create table header cell
// text += '<FONT COLOR="' + headerColor + '" SIZE=' + headerSize + '>' // set font for table header
text += monthName + ' ' + year 
// text += '</FONT>' // close table header's font settings
text += '</TH>' // close header cell

// variables to hold constant settings
var openCol = '<TD>'
// openCol += '<FONT COLOR="' + dayColor + '">'
var closeCol = '</TD>'

// create array of abbreviated day names
var weekDay = new Array(7)
weekDay[0] = "S"
weekDay[1] = "M"
weekDay[2] = "D"
weekDay[3] = "M"
weekDay[4] = "D"
weekDay[5] = "F"
weekDay[6] = "S"

// create first row of table to set column width and specify week day
text += '<TR ALIGN="center" VALIGN="center">'
for (var dayNum = 0; dayNum < 7; ++dayNum) {
text += openCol + weekDay[dayNum] + closeCol 
}
text += '</TR>'

// declaration and initialization of two variables to help with tables
var digit = 1
var curCell = 1

for (var row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7); ++row) {
text += '<TR ALIGN="right" VALIGN="top">'
for (var col = 1; col <= 7; ++col) {
if (digit > lastDate)
break
if (curCell < firstDay) {
text += '<TD></TD>';
curCell++
} else {
if (digit == date) { // current cell represent today's date
text += '<TD HEIGHT=' + cellHeight + '>'
text += '<FONT class="today">'
text += digit
text += '</FONT>'
text += '</TD>'
} else
text += '<TD HEIGHT=' + cellHeight + '>' + digit + '</TD>'
digit++
}
}
text += '</TR>'
}

// close all basic table tags
text += '</TABLE>'
text += '</CENTER>'

// print accumulative HTML string
document.write(text) 
}

// Cookie Handling

function getCookieVal(offset) {
     var endstr = document.cookie.indexOf (";", offset);
     if (endstr == -1)
         endstr = document.cookie.length;
     return unescape(document.cookie.substring(offset, endstr));
}

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 replaceSubstring(inputString, fromString, toString) {
   // Goes through the inputString and replaces every occurrence of fromString with toString
   var temp = inputString;
   if (fromString == "") {
      return inputString;
   }
   if (toString.indexOf(fromString) == -1) { // If the string being replaced is not a part of the replacement string (normal situation)
      while (temp.indexOf(fromString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(fromString));
         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);
         temp = toTheLeft + toString + toTheRight;
      }
   } else { // String being replaced is part of replacement string (like "+" being replaced with "++") - prevent an infinite loop
      var midStrings = new Array("~", "`", "_", "^", "#");
      var midStringLen = 1;
      var midString = "";
      // Find a string that doesn't exist in the inputString to be used
      // as an "inbetween" string
      while (midString == "") {
         for (var i=0; i < midStrings.length; i++) {
            var tempMidString = "";
            for (var j=0; j < midStringLen; j++) { tempMidString += midStrings[i]; }
            if (fromString.indexOf(tempMidString) == -1) {
               midString = tempMidString;
               i = midStrings.length + 1;
            }
         }
      } // Keep on going until we build an "inbetween" string that doesn't exist
      // Now go through and do two replaces - first, replace the "fromString" with the "inbetween" string
      while (temp.indexOf(fromString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(fromString));
         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);
         temp = toTheLeft + midString + toTheRight;
      }
      // Next, replace the "inbetween" string with the "toString"
      while (temp.indexOf(midString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(midString));
         var toTheRight = temp.substring(temp.indexOf(midString)+midString.length, temp.length);
         temp = toTheLeft + toString + toTheRight;
      }
   } // Ends the check to see if the string being replaced is part of the replacement string or not
   return temp; // Send the updated string back to the user
} // Ends the "replaceSubstring" function 
