

var user_api = new Class({

    initialize: function(api_url){
	    this.api_url 		= api_url;
	    this.insurantCount	= 1;
	    this.nextCount		= new Array();
	},
	
	injectNewInsurant: function(replace_id){
		
		var loaderRequest = new Request.HTML({
			url: this.api_url,
			evalResponse: true,
			
			// evalScripts: true,
			update: (replace_id),
		
			onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) {
				// $(replace_id).set('load', {evalScripts: true});
				// $(replace_id).adopt(responseTree);
				$exec(responseJavaScript);
			},

			onFailure: function() {
				$(replace_id).set(replace_id, '<div class="error">Es trat ein Fehler auf.</div>');
			}

		});

		loaderRequest.post({'action' : 'getInsurant'});
		loaderRequest.send();
		
	},
	
    initInject:function(injectInto_id, count) {
    	this.nextCount[injectInto_id] = count;
    },
	
    injectElement:function(injectInto_id) {
    	
    	this.nextCount[injectInto_id]++;
    	
    	var nextCount = this.nextCount[injectInto_id];
    	
		var loaderRequest = new Request.HTML({
			url: this.api_url,
			// evalResponse: true,
			
			onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) {

				var newElementId 	= 'myInjectElement' + nextCount;
				var injectElement 	= new Element('div', {'id' : newElementId});
				
				$(injectInto_id).adopt(injectElement);
				var newHtml = injectElement.get('html') + responseHTML;
				$(newElementId).set('html', newHtml);
				
				var customTips = $$('.tooltip');
				var toolTips = new Tips(customTips, {
					showDelay: 0,    					//default is 100
					hideDelay: 0,   					//default is 100
					className: 'tooltipContainer', 		//default is null
					offsets: {
						'x': 16,       					//default is 16
						'y': 16        					//default is 16
					},
				 	fixed: false     					//default is false
				});
				
			},

			onFailure: function() {
				$(replace_id).set('html', '<div class="error">Es trat ein Fehler auf.</div>');
			}

		});

		loaderRequest.post({'action' : 'getInsurant'});
		loaderRequest.send();
		
    },
    
    removeElement:function(elementId) {
    	$(elementId).set('html', '');    	
    },
    
    updateField:function(getElementId, updateElementId) {
    	$(updateElementId).value = $(getElementId).value;
    },
    
    checkZip:function() {
    	var zipValue = $('zip').value;
    	
		var zipCheck = /^\d{4}$/;
		if (zipCheck.exec(zipValue) == null) {
			$('city').value 	= '';
			$('country').value	= 'Schweiz';
			return false;
		}
    	
		var loaderRequest = new Request.HTML({
			url: this.api_url,
			
			onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) {
				$('city').value 	= responseHTML;
				$('country').value	= 'Schweiz';
				
			},

			onFailure: function() {
				$('country').value = 'Es trat ein Fehler auf.';
			}

		});
    	
		loaderRequest.post({'action' : 'checkZip', 'zip': zipValue});
		loaderRequest.send();
    	
    }
    
});








getScrollTop = function() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
};

getScrollPosition = function(axis) {
	var scrollPosX = 0;
	var scrollPosY = 0;

	if( typeof( window.pageYOffset ) == 'number' ) {
		//Netscape compliant
		scrollPosY = window.pageYOffset;
		scrollPosX = window.pageXOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		//DOM compliant
		scrollPosY = document.body.scrollTop;
		scrollPosX = document.body.scrollLeft;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		//IE6 standards compliant mode
		scrollPosY = document.documentElement.scrollTop;
		scrollPosX = document.documentElement.scrollLeft;
	}
	return (axis == "Y") ? scrollPosY : scrollPosX;
};



getWindowSize = function(axis) {
	
	var windowWidth = 0;
	var windowHeight = 0;
	
	if( typeof( window.innerWidth ) == 'number' ) {
		
		//Non-IE
		windowWidth		= window.innerWidth;
		windowHeight	= window.innerHeight;
	
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		
		//IE 6+ in 'standards compliant mode'
		windowWidth		= document.documentElement.clientWidth;
		windowHeight	= document.documentElement.clientHeight;
	
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		
		//IE 4 compatible
		windowWidth		= document.body.clientWidth;
		windowHeight	= document.body.clientHeight;
	}
	
	return (axis == "Y") ? windowHeight : windowWidth;
};


setPopoverPosition = function() {
	var winH		= getWindowSize("Y");
	var winW		= getWindowSize("X");
	var bgEl		= $('popoverBackground');
	var scrollTop	= getScrollPosition("Y");
	
	
	bgEl.set('styles', {
	    'top' : '0px',
	    'height' : (winH + scrollTop) + 'px'
	    // 'opacity' : '0'
	});
	
	// bgEl.fade(1);
	
	var newLeftOfElement = (winW / 2) - 150;
	var newTopOfElement = ((winH / 2) - 100) + scrollTop;
	var el = $('eMPOutline');
	
	el.set('styles', {
	    'left': newLeftOfElement + 'px',
	    'top' : newTopOfElement + 'px',
	    'display' : 'block'
	});
	
	
	
};


injectPopoverDiv = function() {
	var popoverDiv 		= new Element('div', {id: 'popOverLayer'});
	var mainContainer	= $('mainContainer');
	popoverDiv.inject(mainContainer, 'after');
	showPopoverDiv();
	return false;
}


function closeErrorBox(setFocusId) {
	$('eMPOutline').set('html','');
	$('popoverBackground').set('styles', {
	    'display' : 'none'
	});
	$(setFocusId).focus();
}

function setError(errorMessage, setFocusId) {
	$('messageBox').set('html', '<div id="popoverBackground"></div>'+
								'<div id="eMPOutline">'+
									'<div id="errorboxTop"></div>'+
									'<div id="errorMessagePopover">'+
										'<p>' + errorMessage + '</p>'+
										'<a href="#" onclick="javascript:closeErrorBox(\''+setFocusId+'\');return false;">OK</a>'+
									'</div>'+
									'<div id="errorboxBottom"></div>'+
								'</div>'
					);
	
	setPopoverPosition();
	
	return false;
}


function checkkey() {
	if(event.keyCode == 13) {        
		event.cancelBubble = true;
		event.returnValue = false;
		event.keyCode = '';
	}
}
