/**
 * Common functions handler for application
 *
 * @author oem
 */
var Common = {

    /**
     * tooltip globals
     */
    tooltipContent: '', // set it in view script for correct translation
    tooltipPosition: ["after"], // See description of dijit.Tooltip.defaultPosition for details (dijit/Tooltip.js)
    tooltipShowDelay: 1000, //miliseconds
    tooltipIdPrefix: 'tooltip',
    tooltipLibraryLoaded: false,
    tooltipCurrentConnectId: null,
    tooltipNextConnectId: null,
    tooltipTimeout: null,
    tooltipToggler: false,  // show/hide switcher when tooltip should be hidden/shown on click
    isIntervalHideRun: false,
    toggled: false,

    /**
     * ajax globals
     */
    ajaxCitiesListInProcess: false,
	ajaxBanknameInProcess: false,

    /**
     * Loads library for tooltip
     */
    tooltipLoadLibrary: function()
    {
        if (!Common.tooltipLibraryLoaded)
        {
            dojo.require("dijit.Tooltip");
            Common.tooltipLibraryLoaded = true;
        }
    },

    /**
     * Shows tooltip
     *
     * See description of dijit.Tooltip.defaultPosition for details on position parameter (dijit/Tooltip.js)
     *
     * @param {string} connectId - id of element for which tooltip must be displayed
     * @param {string} content - if not given, global setting is taken
     * @param {string} position - if not given, global setting is taken
     */
    tooltipShow: function(connectId, content, position)
    {
        // hide any shown tooltip
        if (Common.tooltipCurrentConnectId != null) Common.tooltipHide();

        // load library for handling tooltips
        Common.tooltipLoadLibrary();

        // show tooltip
        dijit.showTooltip(content ? content : Common.tooltipContent, dojo.byId(connectId), position ? position : Common.tooltipPosition);

        Common.tooltipCurrentConnectId = connectId;
    },

    /**
     * Shows tooltip with delay
     *
     * See description of dijit.Tooltip.defaultPosition for details on position parameter (dijit/Tooltip.js)
     *
     * @param {string} connectId - id of element for which tooltip must be displayed
     */
    tooltipShowDalayed: function(connectId)
    {
        Common.toggled = true;
        Common.tooltipNextConnectId = connectId;
        setTimeout('if(Common.tooltipNextConnectId==\''+connectId+'\') Common.tooltipShow(\''+connectId+'\');', 200);
    },

    /**
     * Set timer to hide tooltip
     *
     * @param {string} connectId - id of element for which tooltip must be displayed
     * @param {int} showDelay - if not given, global setting is taken
     */
    tooltipSetHide: function(connectId, showDelay)
    {
    	Common.tooltipNextConnectId = null;
        Common.tooltipTimeout = setTimeout(dojo.hitch(Common, 'tooltipHide', connectId), showDelay ? showDelay : Common.tooltipShowDelay);
    },

    /**
     * Hides tooltip
     *
     * @param {string} connectId - id of element for which tooltip must be displayed
     */
    tooltipHide: function(connectId)
    {
        Common.toggled = false;
        // clear timeout
        clearTimeout(Common.tooltipTimeout)

        Common.tooltipToggler = false;

        // set id
        var id = connectId ? connectId : Common.tooltipCurrentConnectId;

        // check if library loaded
        if (!Common.tooltipLibraryLoaded)
        {
            dojo.require("dijit.Tooltip");
            Common.tooltipLibraryLoaded = true;
        }

        // hide tooltip
        dijit.hideTooltip(dojo.byId(id));

        if(Common.isIntervalHideRun == false) {
            Common.isIntervalHideRun = true;
            setInterval('if(Common.toggled == false) Common.tooltipHide();', 1000);
        }

        // reset connect id
        Common.tooltipCurrentConnectId = null;
    },

    /**
     * Show/hide tooltip
     *
     * See description of dijit.Tooltip.defaultPosition for details on position parameter (dijit/Tooltip.js)
     *
     * @param {string} connectId - id of element for which tooltip must be displayed
     * @param {string} content - if not given, global setting is taken
     * @param {string} position - if not given, global setting is taken
     */
    tooltipToggle: function(connectId, content, position)
    {
        Common.tooltipToggler ? Common.tooltipHide(connectId) : Common.tooltipShow(connectId, content, position);
        Common.tooltipToggler = !Common.tooltipToggler;
    },
	
	
	/**
     * Ajax
     */
    ajaxBankname: function(blzFieldId, locationContainerID)
    {
		/**
         * Prevent multicalls
         */
        if (Common.ajaxBanknameInProcess) return;

        /**
         * Set processing flag
         */
        Common.ajaxBanknameInProcess = true;

       
        dojo.removeAttr(blzFieldId, 'disabled');
		
		 if (dojo.byId(blzFieldId).value === '') {
            Common.ajaxBanknameInProcess = false;
            return;
        }else
        {
            if (dojo.byId(blzFieldId).value.length <= 7) {
                Common.ajaxBanknameInProcess = false;
                return;
            }
        }
		
		// ajax animation
        dojo.byId(locationContainerID).innerHTML = '<img src="images/ajax-loader.gif" />';
		dojo.xhrPost({
            url:"nagscreen/ajaxfindbankname",
            handleAs: "json",
            content:
            {
                "bankCode" : dojo.byId(blzFieldId).value
            },

            timeout: 15000, // Time in milliseconds

            load: function(response, ioArgs) {
				
                var blzFound = 0;
                Common.ajaxBanknameInProcess = false;
				
                if ((response.type == 'message'))  {
                    dojo.byId(locationContainerID).innerHTML = response.message;					
                } else if(response.type == 'blzFound') {					
                    dojo.byId(locationContainerID).innerHTML = response.message;					
                    blzFound = 1;					
                } 
				
                return response;
            },
			
			
            error: function(response, ioArgs) {
				Common.ajaxBanknameInProcess = false;				
                if (200 != ioArgs.xhr.status) {
                    console.error("HTTP status code: ", ioArgs.xhr.status);
                }
                return response;
            }
        });
    },

    /**
     * Ajax
     */
    ajaxCitiesList: function(countryFieldId, postalCodeFieldId, locationNameID, locationContainerID, onFound, locationId)
    {
        /**
         * Prevent multicalls
         */
        if (Common.ajaxCitiesListInProcess) return;

        /**
         * Set processing flag
         */
        Common.ajaxCitiesListInProcess = true;

        dojo.require("dojo.cookie");
        dojo.removeAttr(postalCodeFieldId, 'disabled');

        if (dojo.byId(postalCodeFieldId).value == '') {
            Common.ajaxCitiesListInProcess = false;
            return;
        }
        
        if (dojo.byId(countryFieldId).value == 'DE')
        {
            if (dojo.byId(postalCodeFieldId).value.length <= 4) {
                Common.ajaxCitiesListInProcess = false;
                return;
            }
        }
        else
        {
            if (dojo.byId(postalCodeFieldId).value.length <= 3) {
                Common.ajaxCitiesListInProcess = false;
                return;
            }
        }
		
        // ajax animation
        dojo.byId(locationContainerID).innerHTML = '<img src="images/ajax-loader.gif" />';

        dojo.xhrPost({
            url:"ajax/citieslist",
            handleAs: "json",
            content:
            {
                "postalCode" : dojo.byId(postalCodeFieldId).value, "countryCode" : dojo.byId(countryFieldId).value, "locationId" : locationId
            },

            timeout: 15000, // Time in milliseconds

            load: function(response, ioArgs) {
                var cityFound = 0;
                var citysFound = 0;
                Common.ajaxCitiesListInProcess = false;

                if ((response.length == 1) && (response[0].type == 'message'))  {
                    dojo.byId(locationContainerID).innerHTML = response[0].message;
                } else if(((response.length == 1) && (response[0].type == 'cityFound')) || (response[0].type == 'correctCity')) {
                    dojo.byId(locationContainerID).innerHTML = '<input type="hidden" id="cityList" name="' + locationNameID + '" value="' + response[0].id + '">' + response[0].placeName + (response[0].adminName1 != '' ? ' - ' + response[0].adminName1 : '');
                    cityFound = 1;
                } else if(response.length > 0) {
                    var html = '<select id="cityList" name="' + locationNameID + '" >';
                    for (var i = 0; i < response.length; i++) {
                        if(i == 0) {
                            html += '<option value="' + response[i].id + '"' + (response[i].type == 'disabled' ? ' selected="selected" disabled="disabled"' : '') + '>' + response[i].placeName + (response[i].adminName1 != '' ? ' - ' + response[i].adminName1 : '') + '</option>';
                        } else {
                            html += '<option value="' + response[i].id + '"' + (response[i].type == 'disabled' ? ' selected="selected" disabled="disabled"' : '') + '>' + response[i].postalCode + ' - ' + response[i].placeName + (response[i].adminName1 != '' ? ' - ' + response[i].adminName1 : '') + '</option>';
                        }
                    }
                    html += '</select>';
                    dojo.byId(locationContainerID).innerHTML = html;
                    citysFound = 1;

                    /* styled forms - run if it is included */
                    if(typeof Custom != 'undefined') {
                      //if(typeof Custom.init == 'function') Custom.init(null, true);
                      if (typeof Custom.initOne == 'function') Custom.initOne('cityList');

                    /**
                     * @since bug 8639 commented because of Custom.initOne method is used now
                     */
//                      /* fix for hearFrom element */
//                       dojo.connect(dojo.byId('Users[hearFrom]'), "onchange", function() {
//                           if(dojo.byId('selectUsers[hearFrom]') != null) {
//                               dojo.query(".select", dojo.byId('Users[hearFrom]').parentNode).forEach(function(node, index, arr) {
//                                   node.innerHTML = dojo.byId('Users[hearFrom]')[dojo.byId('Users[hearFrom]').selectedIndex].innerHTML;
//                               });
//                           }
//                       });
                    }
                }

                if (cityFound && (onFound != null)) {
                    eval(onFound);
                }

                if (citysFound) {
                    dojo.byId('cityList').selectedIndex = dojo.cookie('cityFromList.cookie');
                    
                    /* Trick FF (Fantastic ForAll) to change dropdaown value */
                    /* dojo.byId('cityList').onchange(); */
                        
                    /* for custom-form-elements.js */
                    if(dojo.byId('selectGeonames[locationId]') != null) {
                        //console.warn('selectGeonames[locationId]: ', dojo.byId('cityList').selectedIndex)
                        dojo.byId('selectGeonames[locationId]').innerHTML = dojo.byId('cityList')[dojo.byId('cityList').selectedIndex].innerHTML;
                    }
                } else {
                    dojo.cookie('cityFromList.cookie', 0);
                }

                if (dojo.byId('cityList')) {
                    /* update postal code field after suggestion pick */
                    dojo.connect(dojo.byId('cityList'), "onchange", function(){
                        if (is_int(dojo.byId('cityList').selectedIndex)) {
                            dojo.xhrPost({
                                url: "ajax/getpostalbyid",
                                handleAs: "json",
                                content: {
                                    "geoid": dojo.byId('cityList').value
                                },

                                timeout: 15000, // Time in milliseconds
                                load: function(response, ioArgs){
                                    //console.log(response.postal);
                                    dojo.byId(postalCodeFieldId).value = response.postal;
                                }


                            });
                        }
                    });
                }

                return response;
            },

            error: function(response, ioArgs) {
                Common.ajaxCitiesListInProcess = false;
                if (200 != ioArgs.xhr.status) {
                    console.error("HTTP status code: ", ioArgs.xhr.status);
                }
                return response;
            }
        });
    },

    /**
     * Ajax
     */
    ajaxRegionsList: function(countryFieldId, regionfieldID, regionContainerID, slectedRegion, frontUrl, onDispose)
	{
	    // ajax animation
	    dojo.byId(regionContainerID).innerHTML = '<img src="images/ajax-loader.gif" />';

	    dojo.xhrPost({
	        url:frontUrl+"ajax/regionslist",
	        handleAs: "json",
	        content:
	        {
	            "countryCode" : dojo.byId(countryFieldId).value
	        },

	        timeout: 15000, // Time in milliseconds

	        load: function(response, ioArgs) {
	          	dojo.byId(regionContainerID).innerHTML = '';

	          	dojo.byId(regionfieldID).innerHTML = '';
	          	var selectedId = 0;
	            for (var i = 0; i < response.length; i++)
	            {
	            	var option = document.createElement('option');
					option.value = response[i].value;
					option.text = response[i].text;
					if(response[i].value == slectedRegion){
						selectedId = i;
					}
					try{
						dojo.byId(regionfieldID).add(option);
					} catch(e) {
						dojo.byId(regionfieldID).add(option,null);
					}
					dojo.byId(regionfieldID).selectedIndex = selectedId;
	            }
	            eval(onDispose);

	            return response;
	        },

	        error: function(response, ioArgs) {
                if (200 != ioArgs.xhr.status) {
                    console.error("HTTP status code: ", ioArgs.xhr.status);
                }
	            return response;
	        }
	    });
	},

    /**
     * Ajax
     */
    ajaxLocationsList: function(regionFieldId, locationfieldID, locationContainerID, slectedLocation, frontUrl)
	{
	    // ajax animation
	    dojo.byId(locationContainerID).innerHTML = '<img src="images/ajax-loader.gif" />';

	    dojo.xhrPost({
	        url:frontUrl+"ajax/locationslist",
	        handleAs: "json",
	        content:
	        {
	            "region" : dojo.byId(regionFieldId).value
	        },

	        timeout: 15000, // Time in milliseconds

	        load: function(response, ioArgs) {
	          	dojo.byId(locationContainerID).innerHTML = '';

	          	dojo.byId(locationfieldID).innerHTML = '';
	          	var selectedId = 0;
	            for (var i = 0; i < response.length; i++)
	            {
	            	var option = document.createElement('option');
					option.value = response[i].value;
					option.text = response[i].text;
					if(response[i].value == slectedLocation){
						selectedId = i;
					}
					try{
						dojo.byId(locationfieldID).add(option);
					} catch(e) {
						dojo.byId(locationfieldID).add(option,null);
					}
					dojo.byId(locationfieldID).selectedIndex = selectedId;
	            }

	            return response;
	        },

	        error: function(response, ioArgs) {
                if (200 != ioArgs.xhr.status) {
                    console.error("HTTP status code: ", ioArgs.xhr.status);
                }
	            return response;
	        }
	    });
	},

    /**
     * FadeOut
     */
    fadeOut: function(id, timeout, additionalOnEndCallback)
    {
        var element = dojo.byId(id);
        if (element) {
            //console.warn('isIE: ' + dojo.isIE)
            //console.debug('element', element)
            if (dojo.isIE == '6' || dojo.isIE == '7') {                
                /**
                 * Use fake-faderDiv to trick the IE (Incredible Error)
                 * and make it to perform clear type text fadeout 
                 */                
                var coords = dojo.coords(id);
                //for(var i in coords) {console.debug(i, coords[i]);}
                var faderDiv = document.createElement('div');
                faderDiv.id = id + '_fader';

                /* Place new fader div */
                dojo.place(faderDiv, element, "before");

                /**
                 * Trick the IE (Incredible Error) to retrieve background
                 */
                var elementStyles = dojo.attr(element, 'style');
                var background = 'white';
                for (i in elementStyles) {
                    //console.debug(i, elementStyles[i])
                    if (i == 'background') {
                        if (elementStyles[i] != '') {
                            background = elementStyles[i];
                        }
                        break;
                    }
                }

                //(typeof dojo.style(element, 'background') == 'undefined' ? "white" : '"' + dojo.style(element, 'background') + '"')

                /**
                 * Trick the IE (Incredible Error) to perform correct positioning
                 */
                dojo.style(faderDiv, {
                    "position": "relative",
                    "top": 0 + "px",
                    "left": 0 + "px",
                    "height": coords.h + "px",
                    "width": coords.w + "px",
                    "background": background,
                    "zIndex": 1000,
                    "opacity": 0
                });
                var faderCoords = dojo.coords(faderDiv.id);
                dojo.style(faderDiv, "position", "absolute");
                dojo.style(faderDiv, "top", faderCoords.t + "px");
                dojo.style(faderDiv, "left", faderCoords.l + "px");

                dojo.fadeIn({
                    node: faderDiv,
                    duration: timeout ? timeout : 1000,
                    onEnd: function(){
                        dojo.byId(id).style.display = 'none';
                        dojo.query('#' + faderDiv.id).orphan();
                        if (typeof additionalOnEndCallback == 'function') {
                            additionalOnEndCallback();
                        }
                    }
                }).play();
            } else {
                dojo.fadeOut({
                    node: element,
                    duration: timeout ? timeout : 1000,
                    onEnd: function(){
                        dojo.byId(id).style.display = 'none';
                        if (typeof additionalOnEndCallback == 'function') {
                            additionalOnEndCallback();
                        }
                    }
                }).play();
            }
        }
    },

    /**
     * Checks content length and cuts if too long
     */
    checkContentLength: function(contentId, contentLength, counterId){
        setInterval('Common.checkContentLengthAction(\''+contentId+'\', \''+contentLength+'\', \''+counterId+'\')', 1100);
    },

    checkContentLengthAction: function(contentId, contentLength, counterId){
        if (!dojo.byId(contentId) || !dojo.byId(counterId)) return;
        if (dojo.byId(contentId).value.length > contentLength) { dojo.byId(contentId).value = dojo.byId(contentId).value.substr(0, contentLength); }
        dojo.byId(counterId).innerHTML = dojo.byId(contentId).value.length;
    },

    /**
     * Sets checkboxes in element id
     */
    setCheckboxes: function (id, checked)
    {
        var i = 1;
        var elem = null;
        while((elem = document.getElementById(id+'['+i+']')) != null){
            elem.checked = checked;
            i++;
        }
    },

    /**
     * Sets checkbox by id
     */
    setCheckbox: function (id, checked)
    {
        var elem = dojo.byId(id);
		if(elem != null)
		{
			elem.checked = checked;
		}
    },

    /**
     * Sets checkbox by id with negative value
     */
    setCheckboxNeg: function (id)
    {
        var elem = dojo.byId(id);
		if(elem != null)
		{
			elem.checked = !elem.checked;
		}
    },

    /**
     * Generates promotion code
     */
    generatePromotionCode: function(elem, length){
         var chars = Array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','W','V','X','Y','Z','1','2','3','4','5','6','7','8','9','0');
         var i;
         var code = '';
         for(i = 0; i < length; i++)
         {
             code += chars[Math.round((100*Math.random()))%chars.length];
         }
         elem.value = code;
    },

    /**
     * Inits HTML editor
     */
    editorInit: function(name, theme, frontend, backend, lang){
        tinyMCE.init({
			// General options
			mode : "exact",
        	elements : name,
			theme : theme,
			language : lang.substring(0, 2),
			plugins : "safari,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,imagemanager,filemanager",
			// Theme options
			theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
			theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
			theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
			theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,spellchecker,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,|,insertfile,insertimage",
			theme_advanced_toolbar_location : "top",
			theme_advanced_toolbar_align : "left",
			theme_advanced_statusbar_location : "bottom",
			theme_advanced_resizing : true,
			convert_urls : false,
			relative_urls : false,
			// content_css : frontend+"styles/style.css",
			content_css : backend+"styles/style_frontend.css?" + new Date().getTime(),
			template_external_list_url : backend+"templates/editortemplatesdownload.html"
		});
    },

    /**
     * Shows image preview div and inserts img from url
     */
    previewShow: function(photo, url){
		var container = dojo.byId('photoPreview');
		container.innerHTML = '<img src="'+url+'?id='+photo.id+'" alt="" onmouseout="Common.previewHide();" />';
		container.style.left = photo.x+'px';
		container.style.top = photo.y+'px';
		container.style.display = 'block';
	},

	/**
     * Hides image preview div
     */
	previewHide: function(){
		dojo.byId('photoPreview').style.display = 'none';
	},

	/**
     * Negate elements display
     * @deprecated use Common.toggleDisplay instead
     */
    show: function(id) {
        Common.toggleDisplay(id);
    },

    /**
     * Toggles element display: none|block
     *
     * @param {string} id - id of element to toggle
     * @param {string} display - none|block - if defined, set as element.style.display
     */
    toggleDisplay: function(id, display) {
        var elem = document.getElementById(id);
        if (elem == null || elem == 'undefined') return;
        if (display) {
            elem.style.display = display;
            return;
        }
        elem.style.display = elem.style.display  == 'none' ? 'block' : 'none';
    },

    is_int: function( mixed_var ) {
        var y = parseInt(mixed_var * 1);
        if (isNaN(y)) {
            return false;
        }
        return mixed_var == y && mixed_var.toString() == y.toString();
    },

	ch1: function(x){var yy=2;var z=0;var xx="";for(var y=0;y<x.length;y++){z=x.charCodeAt(y);xx+=String.fromCharCode(z-yy);}return xx;},

	msb: function(x){location.href=ch1(x);},

    preparePopups: function()
    { 
        var linki = document.getElementsByTagName('a');
        for(i=0; i < linki.length; i++)
        {
            if (linki[i].className == 'popup') {
            	linki[i].onclick = Common.openWindow;
            }
        }
        
        return false;
    },

    openWindow: function()
    {
    	newWindow = window.open(this,'','height=600,width=850,scrollbars=1');

        if (newWindow.focus)
        {
            newWindow.focus();
        }

        return false;
    },

    /**
     * Ajax
     */
		ajaxSetGeonameLocationId: function(cityList, GeonameslocationId)
    {
			if(is_int(dojo.byId(cityList).selectedIndex))
			{
				dojo.byId(GeonameslocationId).value = dojo.byId(cityList).value;
			}
		},

    
    validateLandingpageGoogleSplit25: function()
    {
        var errors = 0;
        var passwordError = 0;
		var mysex_checked = 'NO_VALUE';

		if ((dojo.byId('usersMySex').value == "FEMALE") || (dojo.byId('usersMySex').value == "MALE")) {
			mysex_checked = dojo.byId('usersMySex').value;
		}
		
        dojo.xhrPost({
            url:"ajax/validatelp",
            handleAs: "json",
            content:
            {
                "mysex" : mysex_checked, "email" : dojo.byId('usersEmail').value, "username" : dojo.byId('userName').value, "password" : dojo.byId('usersPassword').value, 'hearfrom' : 'NO_VALUE'
            },

            timeout: 15000, // Time in milliseconds

            load: function(response, ioArgs) {
				
				if(typeof response.passwordLanding != 'undefined') {
                    dojo.byId('usersPasswordError').style.display = 'block';
                    dojo.byId('usersPasswordError').innerHTML = '<span>'+response.passwordLanding[0]+'</span>';
                    passwordError = 1;
                }

                if(dojo.byId('usersPassword').value == dojo.byId('userName').value) {
                    dojo.byId('usersPasswordError').style.display = 'block';
                    dojo.byId('usersPasswordError').innerHTML = '<span>'+response.passwordMatch[1]+'</span>';
                    passwordError = 1;
                }

                if(dojo.byId('usersPassword').value == '') {
                    dojo.byId('usersPasswordError').style.display = 'block';
                    dojo.byId('usersPasswordError').innerHTML = '<span>'+response.passwordMatch[2]+'</span>';
                    passwordError = 1;
                }

                if(passwordError == 0) {
                    dojo.byId('usersPasswordError').style.display = 'none';
                } else {
                    errors = 1;
                }

                if(typeof response.username != 'undefined') {
                    dojo.byId('userNameError').style.display = 'block';
                    dojo.byId('userNameError').innerHTML = '<span>'+response.username[0]+'</span>';
                    errors = 1;
                } else {
                    dojo.byId('userNameError').style.display = 'none';
                }

                if(typeof response.email != 'undefined') {
                    dojo.byId('usersEmailError').style.display = 'block';
                    dojo.byId('usersEmailError').innerHTML = '<span>'+response.email[0]+'</span>';
                    errors = 1;
                } else {
                    dojo.byId('usersEmailError').style.display = 'none';
                }

                if(typeof response.mysex != 'undefined') {
                    dojo.byId('usersMySexError').style.display = 'block';
                    dojo.byId('usersMySexError').innerHTML = '<span>'+response.mysex[0]+'</span>';
                    errors = 1;
                } else {
                    dojo.byId('usersMySexError').style.display = 'none';
                }

                if(dojo.byId('usersTermsConfirm').checked == false) {
                    dojo.byId('usersTermsConfirmError').style.display = 'block';
                    dojo.byId('usersTermsConfirmError').innerHTML = '<span>'+response.termsConfirm[0]+'</span>';
                    errors = 1;
                } else {
                    dojo.byId('usersTermsConfirmError').style.display = 'none';
                }

                if(errors == 0){
					var click = '1';
					
					dojo.xhrGet( {
						url: 'ajax/clickstat/' + click,
						 handleAs: "text",						 
						 timeout: 5000,
						 
						 load: function(response, ioArgs) {
							
						 },
						 
						 error: function(response, ioArgs) {
							
						}
										
					});
					
					dojo.byId('generalDetailsForm').submit();
					
				}

                return response;
            },

            error: function(response, ioArgs) {
                Common.ajaxCitiesListInProcess = false;
                if (200 != ioArgs.xhr.status) {
                    console.error("HTTP status code: ", ioArgs.xhr.status);
                }
                return response;
            }
        });
    },

    validateLandingpage: function()
    {
        var errors = 0;
        var passwordError = 0;
		var mysex_checked = 'NO_VALUE';

		if (dojo.byId('usersMySex1').checked == true) {
			mysex_checked = dojo.byId('usersMySex1').value;
		} else if (dojo.byId('usersMySex2').checked == true) {
			mysex_checked = dojo.byId('usersMySex2').value;
		}
		
		
        dojo.xhrPost({
            url:"ajax/validatelp",
            handleAs: "json",
            content:
            {
                "mysex" : mysex_checked, "email" : dojo.byId('usersEmail').value, "username" : dojo.byId('userName').value, "password" : dojo.byId('usersPassword').value, 'hearfrom' : 'NO_VALUE'
            },

            timeout: 15000, // Time in milliseconds

            load: function(response, ioArgs) {
				
				if(typeof response.passwordLanding != 'undefined') {
                    dojo.byId('usersPasswordError').style.display = 'block';
                    dojo.byId('usersPasswordError').innerHTML = '<span>'+response.passwordLanding[0]+'</span>';
                    passwordError = 1;
                }

                if(dojo.byId('usersPassword').value == dojo.byId('userName').value) {
                    dojo.byId('usersPasswordError').style.display = 'block';
                    dojo.byId('usersPasswordError').innerHTML = '<span>'+response.passwordMatch[1]+'</span>';
                    passwordError = 1;
                }

                if(dojo.byId('usersPassword').value != dojo.byId('usersPasswordConfirm').value) {
                    dojo.byId('usersPasswordError').style.display = 'block';
                    dojo.byId('usersPasswordError').innerHTML = '<span>'+response.passwordMatch[0]+'</span>';
                    passwordError = 1;
                }

                if(dojo.byId('usersPassword').value == '' || dojo.byId('usersPasswordConfirm').value == '') {
                    dojo.byId('usersPasswordError').style.display = 'block';
                    dojo.byId('usersPasswordError').innerHTML = '<span>'+response.passwordMatch[2]+'</span>';
                    passwordError = 1;
                }

                if(passwordError == 0) {
                    dojo.byId('usersPasswordError').style.display = 'none';
                } else {
                    errors = 1;
                }

                if(typeof response.username != 'undefined') {
                    dojo.byId('userNameError').style.display = 'block';
                    dojo.byId('userNameError').innerHTML = '<span>'+response.username[0]+'</span>';
                    errors = 1;
                } else {
                    dojo.byId('userNameError').style.display = 'none';
                }

                if(typeof response.email != 'undefined') {
                    dojo.byId('usersEmailError').style.display = 'block';
                    dojo.byId('usersEmailError').innerHTML = '<span>'+response.email[0]+'</span>';
                    errors = 1;
                } else {
                    dojo.byId('usersEmailError').style.display = 'none';
                }

                if(typeof response.mysex != 'undefined') {
                    dojo.byId('usersMySexError').style.display = 'block';
                    dojo.byId('usersMySexError').innerHTML = '<span>'+response.mysex[0]+'</span>';
                    errors = 1;
                } else {
                    dojo.byId('usersMySexError').style.display = 'none';
                }

                if(dojo.byId('usersTermsConfirm').checked == false) {
                    dojo.byId('usersTermsConfirmError').style.display = 'block';
                    dojo.byId('usersTermsConfirmError').innerHTML = '<span>'+response.termsConfirm[0]+'</span>';
                    errors = 1;
                } else {
                    dojo.byId('usersTermsConfirmError').style.display = 'none';
                }

                if(errors == 0){
					var click = '1';
					
					dojo.xhrGet( {
						url: 'ajax/clickstat/' + click,
						 handleAs: "text",						 
						 timeout: 5000,
						 
						 load: function(response, ioArgs) {
							
						 },
						 
						 error: function(response, ioArgs) {
							
						}
										
					});
					
					dojo.byId('generalDetailsForm').submit();
					
				}

                return response;
            },

            error: function(response, ioArgs) {
                Common.ajaxCitiesListInProcess = false;
                if (200 != ioArgs.xhr.status) {
                    console.error("HTTP status code: ", ioArgs.xhr.status);
                }
                return response;
            }
        });
    },
	
    validateShortLandingpage: function()
    {
        var errors = 0;
        var passwordError = 0;
		var mysex_checked = 'NO_VALUE';
		
		if ((dojo.byId('usersMySex').value == "FEMALE") || (dojo.byId('usersMySex').value == "MALE")) {
			mysex_checked = dojo.byId('usersMySex').value;
		}

        dojo.xhrPost({
            url:"ajax/validateshortlp",
            handleAs: "json",
            content:
            {
        		"mysex" : mysex_checked, "email" : dojo.byId('usersEmail').value, 'hearfrom' : 'NO_VALUE'
            },

            timeout: 15000, // Time in milliseconds

            load: function(response, ioArgs) {
            	
            	if(typeof response.email != 'undefined') {
                    dojo.byId('usersEmailError').style.display = 'block';
                    dojo.byId('usersEmailError').innerHTML = '<span>'+response.email[0]+'</span>';
                    errors = errors + 1;
                } else {
                    dojo.byId('usersEmailError').style.display = 'none';
                }
            	
                if(typeof response.mysex != 'undefined') {
                    dojo.byId('usersMySexError').style.display = 'block';
                    dojo.byId('usersMySexError').innerHTML = '<span>'+response.mysex[0]+'</span>';
                    errors = errors + 1;
                } else {
                    dojo.byId('usersMySexError').style.display = 'none';
                }

                if(dojo.byId('usersTermsConfirm').checked == false) {
                    dojo.byId('usersTermsConfirmError').style.display = 'block';
                    dojo.byId('usersTermsConfirmError').innerHTML = '<span>'+response.termsConfirm[0]+'</span>';
                    errors = errors + 1;
                } else {
                    dojo.byId('usersTermsConfirmError').style.display = 'none';
                }
                
                if(errors == 0){
					var click = '1';
					
					dojo.xhrGet( {
						url: 'ajax/clickstat/' + click,
						 handleAs: "text",						 
						 timeout: 5000,
						 
						 load: function(response, ioArgs) {
							
						 },
						 
						 error: function(response, ioArgs) {
							
						}
										
					});
					
					dojo.byId('generalDetailsForm').submit();
					
				}

                return response;
            },

            error: function(response, ioArgs) {
                Common.ajaxCitiesListInProcess = false;
                if (200 != ioArgs.xhr.status) {
                    console.error("HTTP status code: ", ioArgs.xhr.status);
                }
                return response;
            }
        });
    },
    
    validateCDateLandingpage: function()
    {    	
    	var errors = 0;
        var mysex_checked = undefined;
		
		if ((dojo.byId('usersMySex').value == "FEMALE") || (dojo.byId('usersMySex').value == "MALE")) {
			mysex_checked = dojo.byId('usersMySex').value;
		}

		dojo.xhrPost({
            url:"ajax/validatecdatelp",
            handleAs: "json",
            content:
            {
        		'mysex' : mysex_checked,  'searchCriteriaAgeFrom' : dojo.byId('searchCriteriaAgeFrom').value, 'searchCriteriaAgeTo' : dojo.byId('searchCriteriaAgeTo').value
            },

            timeout: 15000, // Time in milliseconds

            load: function(response, ioArgs) {
            	if(typeof response.searchCriteriaAgeFrom != 'undefined' || typeof response.searchCriteriaAgeTo != 'undefined') {
                    dojo.byId('searchCriteriaAgeFromError').style.display = 'block';
                    dojo.byId('searchCriteriaAgeFromError').innerHTML  = '<span>'+response.searchCriteriaAgeFrom[0]+'</span>';
                    
                    errors = errors + 1;
                } else {
                    dojo.byId('searchCriteriaAgeFromError').style.display = 'none';
                }
            	
                if(typeof response.mySex != 'undefined' || response.mySex == 'u') {
                    dojo.byId('usersMySexError').style.display = 'block';
                    dojo.byId('usersMySexError').innerHTML = '<span>'+response.mySex[0]+'</span>';
                    errors = errors + 1;
                } else {
                    dojo.byId('usersMySexError').style.display = 'none';
                }                
                
                
                if(errors == 0){
					var click = '1';
					
					dojo.xhrGet( {
						url: 'ajax/clickstat/' + click,
						 handleAs: "text",									 						
						 timeout: 5000,
						 
						 load: function(response, ioArgs) {
							
						 },
						 
						 error: function(response, ioArgs) {
							
						}
										
					});
					
					dojo.byId('generalDetailsForm').submit();
					
				}

                return response;
            },

            error: function(response, ioArgs) {
                Common.ajaxCitiesListInProcess = false;
                if (200 != ioArgs.xhr.status) {
                    console.error("HTTP status code: ", ioArgs.xhr.status);
                }
                return response;
            }
        });
    },
    
    validateCDateLandingpageWithEMail: function()
    {    	
    	var errors = 0;
        var mysex_checked = undefined;
		var email = (dojo.byId('usersEmail') != undefined) ?  dojo.byId('usersEmail').value : '';
		
		if ((dojo.byId('usersMySex').value == "FEMALE") || (dojo.byId('usersMySex').value == "MALE")) {
			mysex_checked = dojo.byId('usersMySex').value;
		}

		dojo.xhrPost({
            url:"ajax/validatecdatelpwithemail",
            handleAs: "json",
            content:
            {
        		'email' : email, 'mysex' : mysex_checked,  'searchCriteriaAgeFrom' : dojo.byId('searchCriteriaAgeFrom').value, 'searchCriteriaAgeTo' : dojo.byId('searchCriteriaAgeTo').value
            },

            timeout: 15000, // Time in milliseconds

            load: function(response, ioArgs) {
            	if(typeof response.email != 'undefined') {
                    dojo.byId('usersEmailError').style.display = 'block';
                    dojo.byId('usersEmailError').innerHTML = '<span>'+response.email[0]+'</span>';
                    errors = errors + 1;
                } else {
                    dojo.byId('usersEmailError').style.display = 'none';
                }
            	
            	if(typeof response.searchCriteriaAgeFrom != 'undefined' || typeof response.searchCriteriaAgeTo != 'undefined') {
                    dojo.byId('searchCriteriaAgeFromError').style.display = 'block';
                    dojo.byId('searchCriteriaAgeFromError').innerHTML  = '<span>'+response.searchCriteriaAgeFrom[0]+'</span>';
                    
                    errors = errors + 1;
                } else {
                    dojo.byId('searchCriteriaAgeFromError').style.display = 'none';
                }
            	
                if(typeof response.mySex != 'undefined' || response.mySex == 'u') {
                    dojo.byId('usersMySexError').style.display = 'block';
                    dojo.byId('usersMySexError').innerHTML = '<span>'+response.mySex[0]+'</span>';
                    errors = errors + 1;
                } else {
                    dojo.byId('usersMySexError').style.display = 'none';
                }                
                
                
                if(errors == 0){
					var click = '1';
					
					dojo.xhrGet( {
						url: 'ajax/clickstat/' + click,
						 handleAs: "text",									 						
						 timeout: 5000,
						 
						 load: function(response, ioArgs) {
							
						 },
						 
						 error: function(response, ioArgs) {
							
						}
										
					});
					
					dojo.byId('generalDetailsForm').submit();
					
				}

                return response;
            },

            error: function(response, ioArgs) {
            	console.log(response);
                Common.ajaxCitiesListInProcess = false;
                if (200 != ioArgs.xhr.status) {
                    console.error("HTTP status code: ", ioArgs.xhr.status);
                }
                return response;
            }
        });
    },

	validateLongGoogleSplitLandingpage: function()
    {
        var errors = 0;
        var passwordError = 0;
		var mysex_checked = 'NO_VALUE';
		
		if ((dojo.byId('usersMySex').value == "FEMALE") || (dojo.byId('usersMySex').value == "MALE")) {
			mysex_checked = dojo.byId('usersMySex').value;
		}

        dojo.xhrPost({
            url:"ajax/validatelonglp",
            handleAs: "json",
            content:
           {
                "mysex" : mysex_checked, "birthday" : dojo.byId('usersBirdthDateDay').value, "birthmonth" : dojo.byId('usersBirdthDateMonth').value, "birthyear" : dojo.byId('usersBirdthDateYear').value, "postCode" : dojo.byId('geonamesPostalCode'), "email" : dojo.byId('usersEmail').value, "username" : dojo.byId('userName').value, "password" : dojo.byId('usersPassword').value, "usersTermsConfirm": dojo.byId('usersTermsConfirm').value
            },

            timeout: 15000, // Time in milliseconds

            load: function(response, ioArgs) {
			
				if((dojo.byId('postalCode') == null) || (dojo.byId('postalCode').value == '') || dojo.byId('locationId') == null || dojo.byId('locationId').value == '') { 
                    dojo.byId('PostalError').style.display = 'block';
                    dojo.byId('PostalError').innerHTML = '<span>'+response.postalCode[0]+'</span>';
                    errors = 1;
                } else {
                    dojo.byId('PostalError').style.display = 'none';
                }
				
				if(typeof response.birdthDate != 'undefined') { 
                    dojo.byId('usersBirthDateError').style.display = 'block';
                    dojo.byId('usersBirthDateError').innerHTML = '<span>'+response.birdthDate[0]+'</span>';
                    errors = 1;
                } else {
                    dojo.byId('usersBirthDateError').style.display = 'none';
                }							
								
				if(typeof response.usernameexistance != 'undefined') { 
				
					if(typeof response.username != 'undefined'){
						dojo.byId('userNameError').style.display = 'block';
						dojo.byId('userNameError').innerHTML = '<span>\'' + response.username + '\'</span>.';
						errors = errors + 1;
					}else{
						dojo.byId('userNameError').style.display = 'block';
						dojo.byId('userNameError').innerHTML = '<span>\'' + dojo.byId('userName').value + '\' ist leider schon vergeben.<br />Versuchen Sie \'' + response.usernameexistance[2] + '\'</span>.';
						errors = errors + 1;
					}
				}else {
                    dojo.byId('userNameError').style.display = 'none';
                }
            	if(typeof response.email != 'undefined') { 
                    dojo.byId('usersEmailError').style.display = 'block';
                    dojo.byId('usersEmailError').innerHTML = '<span>'+response.email[0]+'</span>';
                    errors = errors + 1;
                } else {
                    dojo.byId('usersEmailError').style.display = 'none';
                }
            	
                if(typeof response.mysex != 'undefined') {
                    dojo.byId('usersMySexError').style.display = 'block';
                    dojo.byId('usersMySexError').innerHTML = '<span>'+response.mysex[0]+'</span>';
                    errors = errors + 1;
                } else {
                    dojo.byId('usersMySexError').style.display = 'none';
                }

                if(dojo.byId('usersTermsConfirm').checked == false) { 
                    dojo.byId('usersTermsConfirmError').style.display = 'block';
                    dojo.byId('usersTermsConfirmError').innerHTML = '<span>'+response.termsConfirm[0]+'</span>';
                    errors = errors + 1;
                } else {
                    dojo.byId('usersTermsConfirmError').style.display = 'none';
                }
				
				if(dojo.byId('usersPassword').value == '') { 
                    dojo.byId('usersPasswordError').style.display = 'block';
                    dojo.byId('usersPasswordError').innerHTML = '<span>'+response.passwordMatch[1]+'</span>';
                    passwordError = 1;
                }
				
				if(dojo.byId('usersPassword').value == dojo.byId('userName').value) { 
                    dojo.byId('usersPasswordError').style.display = 'block';
                    dojo.byId('usersPasswordError').innerHTML = '<span>'+response.passwordMatch[0]+'</span>';
                    passwordError = 1;
                }
				
				if (response.passwordError != undefined) {
					dojo.byId('usersPasswordError').style.display = 'block';
                    dojo.byId('usersPasswordError').innerHTML = '<span>'+response.passwordMatch[0]+'</span>';
                    passwordError = 1;
				}

                if(passwordError == 0) {
                    dojo.byId('usersPasswordError').style.display = 'none';
                } else {
                    errors = 1;
                }
                
                if(errors == 0){
					var click = '1';
					
					dojo.xhrGet( {
						url: 'ajax/clickstat/' + click,
						 handleAs: "text",						 
						 timeout: 5000,
						 
						 load: function(response, ioArgs) {
							
						 },
						 
						 error: function(response, ioArgs) {
							
						}
										
					});
					
					dojo.byId('generalDetailsForm').submit();
					
				}

                return response;
            },

            error: function(response, ioArgs) {
                Common.ajaxCitiesListInProcess = false;
                if (200 != ioArgs.xhr.status) {
                    console.error("HTTP status code: ", ioArgs.xhr.status);
                }
                return response;
            }
        });
    },     
    
	validateShortLandingpageWithPassword: function()
    {
        var errors = 0;
        var passwordError = 0;
		var mysex_checked = 'NO_VALUE';

		mysex_checked = dojo.byId('usersMySex').value;
		
        dojo.xhrPost({
            url:"ajax/validatelpwithpassword",
            handleAs: "json",
            content:
            {
                "mysex" : mysex_checked, "email" : dojo.byId('usersEmail').value, "username" : 'partnersuche', "password" : dojo.byId('usersPW').value, 'hearfrom' : 'NO_VALUE'
            },

            timeout: 15000, // Time in milliseconds

            load: function(response, ioArgs) {
				if(dojo.byId('usersMySex').value == 'u') {
                    dojo.byId('usersMySexError').style.display = 'block';
                    dojo.byId('usersMySexError').innerHTML = '<span>'+response.mySexCustom[0]+'</span>';
                    errors = 1;
                }
			
                if(dojo.byId('usersPW').value == '') {
                    dojo.byId('usersPasswordError').style.display = 'block';
                    dojo.byId('usersPasswordError').innerHTML = '<span>'+response.passwordMatch[3]+'</span>';
                    passwordError = 1;
                }
				
				if (response.passwordError != undefined) {
					dojo.byId('usersPasswordError').style.display = 'block';
                    dojo.byId('usersPasswordError').innerHTML = '<span>'+response.passwordError[0]+'</span>';
                    passwordError = 1;
				}

                if(passwordError == 0) {
                    dojo.byId('usersPasswordError').style.display = 'none';
                } else {
                    errors = 1;
                }

                if(typeof response.email != 'undefined') {
                    dojo.byId('usersEmailError').style.display = 'block';
                    dojo.byId('usersEmailError').innerHTML = '<span>'+response.email[0]+'</span>';
                    errors = 1;
                } else {
                    dojo.byId('usersEmailError').style.display = 'none';
                }

                if(dojo.byId('usersTermsConfirm').checked == false) {
                    dojo.byId('usersTermsConfirmError').style.display = 'block';
                    dojo.byId('usersTermsConfirmError').innerHTML = '<span>'+response.termsConfirm[0]+'</span>';
                    errors = 1;
                } else {
                    dojo.byId('usersTermsConfirmError').style.display = 'none';
                }

                if(errors == 0){
					var click = '1';
					
					dojo.xhrGet( {
						url: 'ajax/clickstat/' + click,
						 handleAs: "text",						 
						 timeout: 5000,
						 
						 load: function(response, ioArgs) {
							
						 },
						 
						 error: function(response, ioArgs) {
							
						}
										
					});
					
					dojo.byId('generalDetailsForm').submit();
					
				}

                return response;
            },

            error: function(response, ioArgs) {
                Common.ajaxCitiesListInProcess = false;
                if (200 != ioArgs.xhr.status) {
                    console.error("HTTP status code: ", ioArgs.xhr.status);
                }
                return response;
            }
        });
    },
	
	validateNl2Landingpage: function()
    {
        var errors = 0;
        var passwordError = 0;
		var mysex_checked = 'NO_VALUE';

		if (dojo.byId('usersMySex1').checked == true) {
			mysex_checked = dojo.byId('usersMySex1').value;
		} else if (dojo.byId('usersMySex2').checked == true) {
			mysex_checked = dojo.byId('usersMySex2').value;
		}

        dojo.xhrPost({
            url:"ajax/validatelpnl",
            handleAs: "json",
            content:
            {
                "mysex" : mysex_checked, "birthday" : dojo.byId('usersBirdthDateDay').value, "birthmonth" : dojo.byId('usersBirdthDateMonth').value, "birthyear" : dojo.byId('usersBirdthDateYear').value, "postCode" : dojo.byId('geonamesPostalCode'), "email" : dojo.byId('usersEmail').value, "username" : dojo.byId('userName').value, "password" : dojo.byId('usersPassword').value, 'hearfrom' : 'NO_VALUE'
            },
			
            timeout: 15000, // Time in milliseconds

            load: function(response, ioArgs) {
			
				 if((dojo.byId('cityList') == null) || (dojo.byId('cityList').value == '')) {
                    dojo.byId('locationError').style.display = 'block';
                    dojo.byId('locationError').innerHTML = '<span>'+response.postCode[0]+'</span>';
                    errors = 1;
                } else {
                    dojo.byId('locationError').style.display = 'none';
                }
				
				if(typeof response.passwordLanding != 'undefined') {
                    dojo.byId('usersPasswordError').style.display = 'block';
                    dojo.byId('usersPasswordError').innerHTML = '<span>'+response.passwordLanding[0]+'</span>';
                    passwordError = 1;
                }

                if(dojo.byId('usersPassword').value == dojo.byId('userName').value) {
                    dojo.byId('usersPasswordError').style.display = 'block';
                    dojo.byId('usersPasswordError').innerHTML = '<span>'+response.passwordMatch[1]+'</span>';
                    passwordError = 1;
                }

                if(dojo.byId('usersPassword').value != dojo.byId('usersPasswordConfirm').value) {
                    dojo.byId('usersPasswordError').style.display = 'block';
                    dojo.byId('usersPasswordError').innerHTML = '<span>'+response.passwordMatch[0]+'</span>';
                    passwordError = 1;
                }

                if(dojo.byId('usersPassword').value == '' || dojo.byId('usersPasswordConfirm').value == '') {
                    dojo.byId('usersPasswordError').style.display = 'block';
                    dojo.byId('usersPasswordError').innerHTML = '<span>'+response.passwordMatch[2]+'</span>';
                    passwordError = 1;
                }

                if(passwordError == 0) {
                    dojo.byId('usersPasswordError').style.display = 'none';
                } else {
                    errors = 1;
                }
				
				if(typeof response.birdthDate != 'undefined') {
                    dojo.byId('userBirthdayError').style.display = 'block';
                    dojo.byId('userBirthdayError').innerHTML = '<span>'+response.birdthDate[0]+'</span>';
                    errors = 1;
                } else {
                    dojo.byId('userBirthdayError').style.display = 'none';
                }
				
				if(typeof response.username != 'undefined') {
                    dojo.byId('userNameError').style.display = 'block';
                    dojo.byId('userNameError').innerHTML = '<span>'+response.username[0]+'</span>';
                    errors = 1;
                } else {
                    dojo.byId('userNameError').style.display = 'none';
                }

                if(typeof response.email != 'undefined') {
                    dojo.byId('usersEmailError').style.display = 'block';
                    dojo.byId('usersEmailError').innerHTML = '<span>'+response.email[0]+'</span>';
                    errors = 1;
                } else {
                    dojo.byId('usersEmailError').style.display = 'none';
                }
				
				
                if(typeof response.mysex != 'undefined') {
                    dojo.byId('usersMySexError').style.display = 'block';
                    dojo.byId('usersMySexError').innerHTML = '<span>'+response.mysex[0]+'</span>';
                    errors = 1;
                } else {
                    dojo.byId('usersMySexError').style.display = 'none';
                }
				
								
				if(dojo.byId('usersTermsConfirm').checked == false) {
                    dojo.byId('usersTermsConfirmError').style.display = 'block';
                    dojo.byId('usersTermsConfirmError').innerHTML = '<span>'+response.termsConfirm[0]+'</span>';
                    errors = 1;
                } else {
                    dojo.byId('usersTermsConfirmError').style.display = 'none';
                }

                if(errors == 0) dojo.byId('generalDetailsForm').submit();

                return response;
            },

            error: function(response, ioArgs) {
                Common.ajaxCitiesListInProcess = false;
                if (200 != ioArgs.xhr.status) {
                    console.error("HTTP status code: ", ioArgs.xhr.status);
                }
                return response;
            }
        });
    },
    
    landingpageSubmitLoginForm: function(e)
    {
        var keynum;
        if (window.event) {
            // IE
            keynum = e.keyCode;
        } else if (e.which)  {
            // Netscape/Firefox/Opera
            keynum = e.which;
        }
        if (keynum == 13) { // enter = 13
            Common.validateLandingpageLoginform();
        }
    },


    validateLoginform: function()
    {
        dojo.xhrPost({
            url:"ajax/preauthenticate",
            handleAs: "json",
            content:
            {
                "login" : dojo.byId('login').value, "password" : dojo.byId('password').value
            },

            timeout: 15000, // Time in milliseconds

            load: function(response, ioArgs) {
                if (response.success == true) {
                    dojo.byId('loginform').submit();
                } else {
                    dojo.byId('loginformError').style.display = 'block';
                    dojo.byId('loginformError').innerHTML = response.message;
				}
                return response;
            },

            error: function(response, ioArgs) {
                Common.ajaxCitiesListInProcess = false;
                if (200 != ioArgs.xhr.status) {
                    console.error("HTTP status code: ", ioArgs.xhr.status);
                }
                return response;
            }
        });
    },

	
    validateLandingpageLoginform: function()
    {
        var errors = 0;

        dojo.xhrPost({
            url:"ajax/validatelploginform",
            handleAs: "json",
            content:
            {
                "login" : dojo.byId('loginformLogin').value, "password" : dojo.byId('loginformPassword').value
            },

            timeout: 15000, // Time in milliseconds

            load: function(response, ioArgs) {
                if (response.login != 1) {
                    dojo.byId('loginformLoginError').style.display = 'block';
                    errors = 1;
                } else {
                    dojo.byId('loginformLoginError').style.display = 'none';
                }
                if (response.password != 1) {
                    dojo.byId('loginformPasswordError').style.display = 'block';
                    errors = 1;
                } else {
                    dojo.byId('loginformPasswordError').style.display = 'none';
                }

                if (typeof response.message != 'undefined') {
                    dojo.byId('loginformOtherError').style.display = 'block';
                    dojo.byId('loginformOtherError').innerHTML = response.message;
                    dojo.byId('loginformLoginError').style.display = 'none';
                    dojo.byId('loginformPasswordError').style.display = 'none';
                    errors = 1;
                } else {
                    dojo.byId('loginformOtherError').style.display = 'none';
                }

                if (errors == 0) {
                    dojo.byId('loginform').submit();
                }

                return response;
            },

            error: function(response, ioArgs) {
                Common.ajaxCitiesListInProcess = false;
                if (200 != ioArgs.xhr.status) {
                    console.error("HTTP status code: ", ioArgs.xhr.status);
                }
                return response;
            }
        });
    },
		
	sentGreetingBox: function(foreignHash) 
	{
		ajaxGreetingInProcess = false;
		
		if (ajaxGreetingInProcess) return;
		ajaxGreetingInProcess = true;
		
		dojo.xhrPost({
			url:"greetings/sentgreeting",
			handleAs: "json", 
			content:
			{
				"foreignHash" : foreignHash
			},

			timeout: 15000, // Time in milliseconds
			
			load: function(response, ioArgs) {
				ajaxGreetingInProcess = false;
				var ids = 'sendGreeting'+ foreignHash;
				dojo.byId('sentgreetingTitle').innerHTML = 'Gruß an '+ foreignHash + '<br /><br />';
				dojo.byId('sentgreetingText').innerHTML = response[0].text + '<br /><br />';
				document.getElementById(ids).style.display = 'none';
				
				
				
				
				
			
				return response;
			},

			error: function(response, ioArgs) {
				ajaxGreetingInProcess = false;
				if (200 != ioArgs.xhr.status) {
					console.error("HTTP status code: ", ioArgs.xhr.status);
				}
				return response;
			}
		});
		document.getElementById('sendGreeting').style.display = 'none';
		document.getElementById('sendGreetingGrey').style.display = 'inline';
		document.getElementById("GreetingGreyLayer").style.display = "block";
		document.getElementById("GreetingContainer").style.display = "block";
	}
}


function renderStars(param)
 {
   var lastHalf = false;
   var a = param - parseInt(param);
   var str = '';

   if(a) { lastHalf = true; }

	 for(i = 0; i <= param-1; i++)
	  {
	     str += '<img src="images/idealpartner/star_fill14.png">';
	  }

	if(lastHalf) { str += '<img src="images/idealpartner/star_half14.png">'; i+=1; }

     for(k = 5; k-i > 0; k--)
	 {
	   str += '<img src="images/idealpartner/star_empty14.png">';
	 }

	 document.write(str);
 }

  function renderStarsBig(param)
 {
   var lastHalf = false;
   var a = param - parseInt(param);
   var str = '';

   if(a) { lastHalf = true; }

	 for(i = 0; i <= param-1; i++)
	  {
	     str += '<img src="images/idealpartner/star_fill.gif">';
	  }

	if(lastHalf) { str += '<img src="images/idealpartner/star_half.gif">'; i+=1; }

     for(k = 5; k-i > 0; k--)
	 {
	   str += '<img src="images/idealpartner/star_empty.gif">';
	 }

	 document.write(str);
 }

    function is_int( mixed_var ) {


        var y = parseInt(mixed_var * 1);

        if (isNaN(y)) {
            return false;
        }

        return mixed_var == y && mixed_var.toString() == y.toString();
    }
	
	


function ch1(x){var yy=2;var z=0;var xx="";for(var y=0;y<x.length;y++){z=x.charCodeAt(y);xx+=String.fromCharCode(z-yy);}return xx;}function msb(x){location.href=ch1(x);}
