<!--
/*
	Validierung des Feld "zipcode_offers"
*/
var felder=new Array();
var formname='find_store';

var werte=new Array();
werte['feld']='zipcodesearch';
werte['pruef']='plz';
werte['typ']='text';
werte['pflicht']=1;
werte['fehler']='Bitte geben Sie eine gueltige fuenfstellige Postleitzahl ein!';
felder[felder.length]=werte;
/*
	Erweiterung der Klasse Pages für Angebotslink-Logik
*/
function agInit() {
	// Eigenschaften
	this.filialCookie=false;

	// Methoden Veranken
	this.goFilialeAuswaehlen=agGoFilialeAuswaehlen;
	this.logik=agLogik;
	this.isRegionalisiert=agIsRegionalisiert;
	this.checkCookieExpired=agCheckCookieExpired;
	
	// Ist diese AG Seite regionalisiert?
	this.regionalisiert=this.isRegionalisiert(this.urlArray);
	// Ist das Filialcookie gesetzt?
	if (sessionManager.cookiesEnabled) {
		if (sessionManager.get('FilialDaten')==1) this.filialCookie=true;
	}
	
}
/*
page::goFilialeAuswaehlen
Umleitung zur Filialsuche

Access: 	public
Parameter: 	url	hasharray mit dem Link zu filialsuche
Returns:	
*/
function agGoFilialeAuswaehlen(backurl) {
	if (!backurl) {
		backurl=this.urlArray['url'];
	}
	var goLink=this.analyseLink(this.typeDefinition['goFilialeAuswaehlenLink']);
	goLink['params'].set('url',backurl);
	return goLink;
}

/*
page::logik
Leitet bei nicht personalisierten Angebotsseiten auf die regionalisierte Version um.
Leitet auf die Filialauswalh um wenn keine Filialdaten vorhanden sind
Speichert Angaben aus Newsletterlinks, wenn sich die Angebotsregion unterscheidet

Access: 	public
Parameter: 	
Returns:	
*/
function agLogik() {
	var params=this.urlArray['params'];// die URL-Parameter der Seite
	var action="";
	//alert(sessionManager.cookiesEnabled+' && !'+this.filialCookie);
	if (sessionManager.cookiesEnabled && !this.filialCookie) {// Umleitung zur Filialsuche wenn noch kein Cookie da
		//action="filialsuche";
	} else if(this.filialCookie) { // Werberegion prüfen
		if (params.get('ar') && params.get('ar')!=sessionManager.get('ar')) { // falsche Angebotsregion
			if (params.get('type')=="nl") {// Aus Newsletter? -> in Cookie übernehmen
				this.storeAngebotsDaten(true);
			}
		}
		action="angebot";
	}
	//alert(this.urlArray['params'].dump());
	//alert(this.urlArray['params'].get('EMID'));
	if (this.isRegionalisiert(this.urlArray) // Noch keine Daten
		&& !sessionManager.get('FilialDaten') 
		|| sessionManager.get('nf')=='False') { // Non-Food
		action="angebot";
	}
	if (action=="filialsuche") {
		var newUrl=this.makeLink(this.modifyLink(this.urlArray,true));
		this.goTo(newUrl);
	} else if(action=="angebot") {
		var skipRedirect=false;
		var oldUrlArray=this.urlArray;
		if (oldUrlArray['params'].get('delete')) skipRedirect=true;
		
		var filialeDeleted=false;
		if (oldUrlArray['params'].get('resetFilialDaten') && oldUrlArray['params'].get('ERR')=='IDNOTFOUND') filialeDeleted=true;
		//alert(filialeDeleted+':'+oldUrlArray['params'].get('resetFilialDaten')+':'+oldUrlArray['params'].get('ERR')+':'+this.makeLink(oldUrlArray));
		
		var oldUrl=this.makeLink(oldUrlArray);
		// Parameter kappen für Vergleich
		if (oldUrl.indexOf('?')!=-1) oldUrl=oldUrl.substring(0,oldUrl.indexOf('?'));
		
		// Bei Löschung nicht mehr umleiten, wir sind schon auf der Seite mit dem Formular
		//alert('page was modified and is:\n'+this.makeLink(newLinkArray));
		var newLinkArray=this.modifyLink(this.urlArray,false,filialeDeleted);
		
		if (!newLinkArray['cookieExpire'] && !newLinkArray['delete']) {
			// hat ja eigentlich keine Auswirkungen mehr
			//newLinkArray['params']=new hashArray();// parameter sind irrelevant für den Vergleich
		} else {
			this.urlArray=newLinkArray;
		}
		
		// Müssen Filialdaten aufgefrischt werden?
		/*updateURL=this.checkCookieExpired(newLinkArray);
		if (updateURL!=-1) {
			var newUrl=this.makeLink(updateURL);
		} else {
			
		}*/
		var newUrl=this.makeLink();
		if (!newLinkArray['cookieExpire'] && !newLinkArray['delete']) {
			if (newUrl.indexOf('?')!=-1) newUrl=newUrl.substring(0,newUrl.indexOf('?'));
		}
		// Umleiten wenn die Soll-URL anders ist als die Ist-URL
		if (oldUrl!=newUrl && !skipRedirect) {
			this.goTo(newUrl);
		}
	}
}

/*
page::isRegionalisiert
Beurteilt ob ein Link schon regionalisiert ist.

Access: 	public
Parameter: 	urlArray link als URL-Array
Returns:	true / false
*/
function agIsRegionalisiert(urlArray) {
	var strpos=indexOfStr(urlArray['file'],this.typeDefinition['angebotsRegionalString']);
	if (strpos!=-1) {
		var ar=urlArray['file'].substring(strpos+this.typeDefinition['angebotsRegionalString'].length,urlArray['file'].length)
		return ar;
	} else {
		return false;
	}
}

/*
page::modifyLink
Verändert Links, Erweiterung von page::modifyLink

Access: 	public
Parameter: 	urlArray den zu verändernden Link
Parameter:	linktoself, true wenn Aufruf aus AG-Logik
Returns:	den Link
*/
function agModifyLink(urlArray,linkToSelf,filialeDeleted) {
	if (this.isRegionalisiert(urlArray)!=sessionManager.get('ar') && sessionManager.get('FilialDaten')==1) {
		var exceptionLink=false;
		for (var i=0;i<this.typeDefinition['modifyLinksExceptions'].length;i++) {
			if (indexOfStr(urlArray['url'],this.typeDefinition['modifyLinksExceptions'][i])!=-1)
				exceptionLink=true;
		}
		if (!exceptionLink && 
			location.href.indexOf('skipReloadNF')==-1 // Wenn Meldung Non-Food angezeigt nicht wieder in die regionalisierte Seite gehen
		) {
			if (this.isRegionalisiert(urlArray)) {
				var strpos=indexOfStr(urlArray['file'],this.typeDefinition['angebotsRegionalString']);
				urlArray['file']=urlArray['file'].substring(0,strpos);
			}
			urlArray['file']+=this.typeDefinition['angebotsRegionalString']+sessionManager.get('ar');
		}
	}
	
	// Filiale wurde gelöscht?
	if ((sessionManager.cookiesEnabled && sessionManager.get('id') && (cID[sessionManager.get('id')] || !sessionManager.get('FilialDaten'))) || filialeDeleted) { // Filiale gelöscht
		urlArray['file']=str_replace(this.typeDefinition['angebotsRegionalString']+this.isRegionalisiert(urlArray),'',urlArray['file']);
		urlArray['params']=new hashArray();
		if (cID[sessionManager.get('id')] && sessionManager.get('FilialDaten')==1) {
			urlArray['params'].set('OpenDocument','');
			urlArray['params'].set('delete',1);
			urlArray['delete']=1;
		}
		sessionManager.set('FilialDaten',0);
	// Keine Daten? -> Zur nicht-regionalisierten AG-Startseite, dort ist die PLZ-Eingabeaufforderung
	} else if (this.isRegionalisiert(urlArray) && !sessionManager.get('FilialDaten')) {
		urlArray['file']=str_replace(this.typeDefinition['angebotsRegionalString']+this.isRegionalisiert(urlArray),'',urlArray['file']);
	} else {
		// Cookie abgelaufen und muß aktualisiert werden?
		newlink=this.checkCookieExpired(urlArray);
		if (newlink!=-1) {
			//alert(this.makeLink(newlink)+'\n is new link for\n'+this.makeLink(urlArray));
			newlink['checkForHTTP']=1;
			urlArray=newlink;
		} else if ( // Nonfood Filiale? -> Umleitung auf Auswahlseite + Meldung
			sessionManager.get('FilialDaten')==1
			&& sessionManager.get('nf')=='False'
			&& sessionManager.get('nf').length > 0
			&& location.href.indexOf('skipReloadNF')==-1
		) {
			//urlArray['params'].set('OpenDocument','');
			urlArray['params'].set('nfmessage',1);
			urlArray['params'].set('skipReloadNF',1);
			urlArray['delete']=1;
			urlArray['params'].set('resetFilialDaten',0);
			sessionManager.set('FilialDaten',0); // löschen damit neue Filiale ausgewählt werden kann
			urlArray['file']=str_replace(this.typeDefinition['angebotsRegionalString']+this.isRegionalisiert(urlArray),'',urlArray['file']);
		}
	}
	
	return urlArray;
}

function agCheckCookieExpired(urlArray) {
	var now=uDate;
	var expire=now.getTime()-(this.typeDefinition['filialCookieRefresh']*86400*1000);
	var aktualisierung=false;
	
	// ToDO: sessionManager.get('aDatum') < uID[sessionManager.get('id')].getTime() testen
	if (sessionManager.get('id') && uID[sessionManager.get('id')] && sessionManager.get('aDatum')<uID[sessionManager.get('id')].getTime()) {
		aktualisierung=true;
	}
	if((!sessionManager.get('filialLastUpdate') // bestehendes Cookie abgelaufen?
		|| sessionManager.get('filialLastUpdate') < expire
		|| aktualisierung) // Filiale geändert
		&& sessionManager.cookiesEnabled
		&& sessionManager.get('FilialDaten')==1
	) {
		var destLink=this.makeLink(urlArray);
		arpos=destLink.indexOf('.ar');
		if (arpos!=-1) {
			destLink=destLink.substring(0,arpos);
			//alert(destLink+':'+arpos);
		}
		if (destLink.indexOf('://')==-1) { // Workaround für 404 Problem am 14.02.04 es gab user die eine relative RücksprungURL hatten
			destLink='http://www.lidl.de/de/index.nsf/pages/'+destLink;
		}
		
		var urlArray=this.analyseLink(this.typeDefinition['filialUpdateURL']);
		urlArray['params'].set('url',destLink);
		urlArray['params'].set('idsearch',sessionManager.get('id'));
		if (aktualisierung) {
			var newintro=urlArray['params'].get('variablesintro')+'&aktualisierung=1';
			urlArray['params'].set('variablesintro',newintro);
		}
		urlArray['cookieExpire']=1;
		return urlArray;
	}
	return -1;
}

//-->