/*
 * Schaltet die Quelle eines img-Tags um
 */
function switch_image(name, status)
{
	if (status == 'on')
	{
		document.images[name].src = 'html_dateien/img/nav/'+name+'_1.gif';
	}
	else
	{
		document.images[name].src = 'html_dateien/img/nav/'+name+'_0.gif';
	}
}
/*
 * Öffnet ein Fenster zentriert auf dem Bildschirm
 */
function OpenWindow(theURL, winName, myWidth, myHeight, scrollbars, resizeable) 
{
        if (!myWidth) 
        {
                myWidth = 312;
        }
        if (!myHeight) 
        {
                myHeight= 280;
        }    
        if (winName == '') 
        {
                winName = 'standardWindow';
        }

        if(window.screen) {
                var myLeft = (screen.width -myWidth) /2;
                var myTop  = (screen.height-myHeight)/2;
        }

        if (scrollbars == '' || scrollbars == 'no') 
        {
                scrollbars = 'no';
        } 
        else 
        {
                scrollbars = 'yes';
        }

        if (resizeable == '' || resizeable == 'no') 
        {
                resizeable = 'no';
        } else {
                resizeable = 'yes';
        }

        windowHandle = window.open(theURL, winName, 'scrollbars='+scrollbars+', resizable='+resizeable+', dependent=yes, left='+myLeft+',top='+myTop+',width='+myWidth+',height='+myHeight);
        windowHandle.focus();
}

/*
 * Prüft, ob im Newsletterformular die erforderlichen Felder ausgefüllt sind und ob die E-Mail Adresse ein gültiges Format besitzt.
 */ 
function check_newsletter()
{
        with (document.forms['Newsletter'])
        {
                if (!elements['FormEmail'].value == '')
                {
                        var emailStr = elements['FormEmail'].value;
                        /* The following pattern is used to check if the entered e-mail address
                           fits the user@domain format.  It also is used to separate the username
                           from the domain. */
                        var emailPat=/^(.+)@(.+)$/
                        /* The following string represents the pattern for matching all special
                           characters.  We don't want to allow special characters in the address. 
                           These characters include ( ) < > @ , ; : \ " . [ ]    */
                        var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
                        /* The following string represents the range of characters allowed in a 
                           username or domainname.  It really states which chars aren't allowed. */
                        var validChars="\[^\\s" + specialChars + "\]"
                        /* The following pattern applies if the "user" is a quoted string (in
                           which case, there are no rules about which characters are allowed
                           and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com
                           is a legal e-mail address. */
                        var quotedUser="(\"[^\"]*\")"
                        /* The following pattern applies for domains that are IP addresses,
                           rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal
                           e-mail address. NOTE: The square brackets are required. */
                        var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
                        /* The following string represents an atom (basically a series of
                           non-special characters.) */
                        var atom=validChars + '+'
                        /* The following string represents one word in the typical username.
                           For example, in john.doe@somewhere.com, john and doe are words.
                           Basically, a word is either an atom or quoted string. */
                        var word="(" + atom + "|" + quotedUser + ")"
                        // The following pattern describes the structure of the user
                        var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
                        /* The following pattern describes the structure of a normal symbolic
                           domain, as opposed to ipDomainPat, shown above. */
                        var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")


                        /* Finally, let's start trying to figure out if the supplied address is
                           valid. */

                        /* Begin with the coarse pattern to simply break up user@domain into
                           different pieces that are easy to analyze. */
                        var matchArray=emailStr.match(emailPat)
                        if (matchArray==null) {
                          /* Too many/few @'s or something; basically, this address doesn't
                             even fit the general mould of a valid e-mail address. */
                                alert("Das Format der E-Mail Adresse scheint nicht korrekt zu sein (Bitte prüfen Sie @ und .)")
                                return false
                        }
                        var user=matchArray[1]
                        var domain=matchArray[2]

                        // See if "user" is valid 
                        if (user.match(userPat)==null) {
                            // user is not valid
                            alert("Der Teil der E-Mail Adresse vor dem @-Zeichen scheint nicht richtig zu sein.")
                            return false
                        }

                        /* if the e-mail address is at an IP address (as opposed to a symbolic
                           host name) make sure the IP address is valid. */
                        var IPArray=domain.match(ipDomainPat)
                        if (IPArray!=null) {
                            // this is an IP address
                                  for (var i=1;i<=4;i++) {
                                    if (IPArray[i]>255) {
                                        alert("Die IP-Adresse ist falsch.")
                                        return false
                                    }
                            }
                            return true
                        }

                        // Domain is symbolic name
                        var domainArray=domain.match(domainPat)
                        if (domainArray==null) {
                                alert("Das Format der E-Mail Adresse ist nicht korrekt.")
                            return false
                        }

                        /* domain name seems valid, but now make sure that it ends in a
                           three-letter word (like com, edu, gov) or a two-letter word,
                           representing country (uk, nl), and that there's a hostname preceding 
                           the domain or country. */

                        /* Now we need to break up the domain to get a count of how many atoms
                           it consists of. */
                        var atomPat=new RegExp(atom,"g")
                        var domArr=domain.match(atomPat)
                        var len=domArr.length
                        if (domArr[domArr.length-1].length<2 || 
                            domArr[domArr.length-1].length>3) {
                           // the address must end in a two letter or three letter word.
                           alert("Die Adresse muss mit einer Domain (3 Buchstaben) oder einer Länderkennung (2 Buchstaben) enden.")
                           return false
                        }

                        // Make sure there's a host name preceding the domain.
                        if (len<2) {
                           var errStr="Bitte geben Sie einen Hostnamen an!"
                           alert(errStr)
                           return false
                        }

                        // If we've gotten this far, everything's valid!
                        submit();
                }
                else
                {
                        alert('Bitte füllen Sie das Feld "E-Mail" aus.');
                }
        }
}

/*
 * Preloader-Funktion für Bilder (Mouseovers etc.)
 */
function lade_bilder_vor()
{
	var bild   = new Array();
	var bilder = new Array('news_1.gif', 'shop_1.gif', 'game_1.gif', 'visuals_1.gif', 'screens_1.gif', 'artwork_1.gif', 'buildings_1.gif', 'download_1.gif', 'support_1.gif', 'forum_1.gif', 'impressum.gif', 'newsletter.gif', 'imprint_1.gif');
	
	for (i = 0; i < bilder.length; i++)
	{
		bild[i] = new Image;
		bild[i].src = '../img/nav/' + bilder[i];
	}
}

/*
 * Prueft, ob beim Cover-Poll eine Wahl getroffen wurde
 */
function pruefe_poll()
{
	var wahl_getroffen = false;
	var buttons 	   = new Array('Motiv1', 'Motiv2', 'Motiv3', 'Motiv4');
	var obj;
	
	for (i in buttons)
	{
		obj = document.getElementById(buttons[i]);
		
		if (obj.checked)
		{
			wahl_getroffen = true;
		}
	}
	
	if (!wahl_getroffen)
	{
		alert('Bitte treffen Sie eine Wahl.');
	}
	
	komm_obj = document.getElementById('Kommentar');
	if (komm_obj.value.length > 1000)
	{
		alert('Ihr Kommentar ist zu lang.\nEr darf nicht länger als 1000 Zeichen sein.');
		return false;
	}
	
	return wahl_getroffen;
}
