﻿/*
   	Link Exchange Script

	Copyright (C) 2007 Erk Nissen - info@link-exchange-script.de
	This program is distributed under the terms and conditions of the GPL

	You can modify the link to 'www.link-exchange-script.de', but you are
	not allowed to remove it, as long as you don't have the direct permission 
	from info@link-exchange-script.de

	DON'T REMOVE THIS NOTICE!!
*/


// VIEW muss vorher eingebunden werden !
// v.0.3
// TODO:auch beim zurückgehen texte aktualisieren wegen multilingual
dojo.addOnLoad( lxcInit );

	// View Objekt
	var view;
	var session;
	var status;
	var cfg;


	// ehemals: start2linksLesen()
	function lxcInit(){	
		cfg = new classConfig();
	}
	
	function lxcConfigGeholt(){
		view = new classView();
		session = new classSession();
		status = new classStatus();
		
		session.setUrlId();
	}
	
	function links2willkommen(){
		view.close('view_linkliste');
		view.open('view_willkommen');
	}

	function willkommen2domainAngabe(){
		view.close('view_willkommen');
		view.checkButtons();
		view.open('view_domain_eingabe');
	}

	function willkommen2links(){
		view.close('view_willkommen');
		view.open('view_linkliste');
	}

	function domainAngabe2domainAnalyse(){
			view.close('view_domain_eingabe');
			session.setUserDomain();
			view.open('view_msg_domain_analyse');
			
			serverRequest_domainAnalyse();

		function serverRequest_domainAnalyse(){
			xhr = http();
			xhr.open("POST",cfg.getRelPath()+cfg.getPhpPath()+"analyze.php",true);
			xhr.onreadystatechange = serverResponse_domainAnalyse; // Keine () !!!
			xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			xhr.send("url=" + session.getUserDomain() );
		}
	}

	function serverResponse_domainAnalyse(){
	
		if(xhr.readyState == 4){
			view.close('view_msg_domain_analyse', view.extra_wartezeit );

			var rueckgabe = xhr.responseText;

			// Rückgabe String zerlegen
			var pos = rueckgabe.indexOf("][");
			var pos2 = rueckgabe.lastIndexOf("][");

			var statusRueckgabe = rueckgabe.substring(0,pos+1);
			var linkRueckgabe 	= rueckgabe.substring(pos+1,pos2+1);
			var metaRueckgabe 	= rueckgabe.substring(pos2+1,rueckgabe.length);
		//	alert("\n\nJSON-STATUS:\n"+statusRueckgabe+"\n\nJSON-LINKS:\n"+linkRueckgabe +"\n\nJSON-META:\n"+metaRueckgabe);

			status.setStatus( statusRueckgabe );
			session.setLinks( linkRueckgabe );		
			session.setMeta( metaRueckgabe );

		

			// Wurde min. ein Link akzeptiert ? Reagieren
			if( status.getAkzeptierteLinks() ){
				if ( status.getAkzeptierteLinks() > 0 ) {
					domainAnalyse2seitenWahl();
				}else{
					domainAnalyse2linktauschNichtMoeglich();
				}
			}else{
				domainAnalyse2linktauschNichtMoeglich();
			}
		}

		function domainAnalyse2seitenWahl(){

			document.getElementById('ttt').style.visibility = 'visible';
			
			if( view.getBrowser() == 'ie'){// 1/4
				document.getElementById('ttt').setAttribute('className', 'tableContainer2');
				document.getElementById('thead1').style.visibility = 'hidden';
				window.setTimeout('document.getElementById(\'thead1\').style.visibility = \'visible\'', 2700);
			}
				
			view.checkButtons();

			session.linksAusDojoTabelleEntfernen();
			session.linksAlsDojoTabelleAusgeben();

			// Post Meta Titel und Beschreibung zuweisen
			session.getTitelUndBeschreibungVonMeta();
			
			view.open('view_backlink_waehlen', view.extra_wartezeit);
		}

		function domainAnalyse2linktauschNichtMoeglich(){
			view.open('view_msg_linktausch_nicht_moeglich', view.extra_wartezeit);
		}
	}

	function linktauschNichtMoeglich2domainAngabe(){
		view.close('view_msg_linktausch_nicht_moeglich');
		view.checkButtons();
		view.open('view_domain_eingabe');
	}

	function seitenWahl2domainAngabe(){
		if( view.getBrowser() == 'ie'){ // 2/4
			window.setTimeout('document.getElementById(\'thead1\').style.visibility = \'hidden\'', 100);
			document.getElementById('ttt').setAttribute('className', 'tableContainer');
		}
		view.close('view_backlink_waehlen');
		view.checkButtons();
		view.open('view_domain_eingabe');
	}

	function seitenWahl2htmlEinbinden(){
		if( view.getBrowser() == 'ie'){// 3/4
			window.setTimeout('document.getElementById(\'thead1\').style.visibility = \'hidden\'', 100);
			document.getElementById('ttt').setAttribute('className', 'tableContainer');
		}

		view.close('view_backlink_waehlen');
		session.setBacklinkUrl();
		session.setHtmlCode();
		view.open('view_html_code_einbauen');
	}

	function htmlEinbinden2seitenWahl(){
		if( view.getBrowser() == 'ie'){// 4/4
			document.getElementById('ttt').setAttribute('className', 'tableContainer2');
			window.setTimeout('document.getElementById(\'thead1\').style.visibility = \'visible\'', 1200);
		}
	
		view.close('view_html_code_einbauen');
		view.checkButtons();
		view.open('view_backlink_waehlen');
	}

	function htmlEinbinden2backlinkPruefen(){
		view.close('view_html_code_einbauen');
		view.open('view_msg_link_check');

		serverRequest_backlinkPruefen();
	}

	function serverRequest_backlinkPruefen(){
		xhr3 = http();
		xhr3.open("POST",cfg.getRelPath()+cfg.getPhpPath()+"check.php",true);
		xhr3.onreadystatechange = serverResponse_backlinkPruefen; // Keine () !!!
		xhr3.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xhr3.send("url_id="+ session.getUrlId() +"&url="+ session.getBacklinkUrl() );
	}

	function serverResponse_backlinkPruefen(){

		if(xhr3.readyState == 4){
			view.close('view_msg_link_check', view.extra_wartezeit );
			
			var rueckgabe = xhr3.responseText;
			// TODO: Nur zu testzwecken auf nichtok ... soll eigendlich ok !
			//alert( rueckgabe );
			if( rueckgabe == "ok" ){
					backlinkPruefen2datenErgaenzen();
			}else{
					backlinkPruefen2htmlNichtGefunden();
			}
		}

		function backlinkPruefen2datenErgaenzen(){

			// URLS setzen
			document.getElementById("radio_daten_ergaenzen_user_domain").innerHTML = session.getUserDomain();
			//TODO: if( post_user_domain != post_backlink_url)
			document.getElementById("radio_daten_ergaenzen_backlink_url").innerHTML = session.getBacklinkUrl();

			InputCharacterLengthCheck();
			view.checkButtons();
			view.open('view_daten_ergaenzen', view.extra_wartezeit);
		}

		function backlinkPruefen2htmlNichtGefunden(){
			view.open('view_html_code_nicht_gefunden');
		}
	}

	function htmlNichtGefunden2backlinkPruefen(){
		view.close('view_html_code_nicht_gefunden');
		serverRequest_backlinkPruefen();
		view.open('view_msg_link_check');
	}

	function htmlNichtGefunden2htmlEinbinden(){
		view.close('view_html_code_nicht_gefunden');
		view.open('view_html_code_einbauen');
	}

	function datenErgaenzen2htmlEinbinden(){
		view.close('view_daten_ergaenzen');
		view.open('view_html_code_einbauen');
	}

	function datenErgaenzen2vorschau(){
		view.close('view_daten_ergaenzen');
		// VIEW:
		session.setBeschreibung();
		session.setTitel();
		session.setLinkUrl();
		document.getElementById("view_vorschau__text").innerHTML = txt_vorschau();

		view.open('view_vorschau');
	}

	function vorschau2datenErgaenzen(){
		view.close('view_vorschau');
		view.open('view_daten_ergaenzen');
	}

	function vorschau2linkEintragen(){
		view.close('view_vorschau');
		serverRequest_linkEintragen();
		// TODO: v0.3 Link Eintragen -> Notwendig ?
		// window.setTimeout('open...', view.wartezeit);
	}

	function datenErgaenzen2linkEintragen(){
		view.close('view_daten_ergaenzen');

		session.setBeschreibung();
		session.setTitel();
		session.setLinkUrl();
		// TODO: v0.3 Link Eintragen -> Notwendig ?
		// window.setTimeout('open...', view.wartezeit);
		serverRequest_linkEintragen();
	}

	function serverRequest_linkEintragen(){
	// TODO: - Prüfen ob alle daten vorhanden
	//       - post_user_domain hinzufügen
		xhr2 = http();
		xhr2.open("POST",cfg.getRelPath()+cfg.getPhpPath()+"submit.php",true);
		xhr2.onreadystatechange = serverResponse_linkEintragen; // Keine () !!!
		xhr2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xhr2.send("url_id="+session.getUrlId()+"&bl_pruefen="+session.getBlPruefen()+"&titel="+session.getTitel()+"&beschreibung="+session.getBeschreibung()+"&link_url="+session.getLinkUrl()+"&backlink_url="+session.getBacklinkUrl()+"&kontakt_mail="+session.getKontaktMail()+"&pagerank="+session.getPagerank()+"&user_domain="+session.getUserDomain());
	}

	function serverResponse_linkEintragen(){

		if(xhr2.readyState == 4){
			var rueckgabe = xhr2.responseText;
			//alert(rueckgabe);
			if( rueckgabe == "link_eingetragen" ){
				linkEintragen2abgeschlossen();
			}else{
				linkEintragen2eintragFehlgeschlagen();
			}
		}

		function linkEintragen2eintragFehlgeschlagen(){
			view.open('view_eintrag_fehler');
		}

		function linkEintragen2abgeschlossen(){
			view.open('view_msg_abgeschlossen');
		}
	}

	function abgeschlossen2linksLesen(){
		view.close('view_msg_abgeschlossen');
		session.resetPost();
		serverRequest_linksLesen();
	}

	function serverRequest_linksLesen(){
		xhr4 = http();
		xhr4.open("POST",cfg.getRelPath()+cfg.getPhpPath()+"show.php",true);
		xhr4.onreadystatechange = this.serverResponse_linksLesen; // Keine () !!!
		xhr4.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xhr4.send("url_id=" + session.getUrlId() );
	}

	function serverResponse_linksLesen(){
		if(xhr4.readyState == 4){
			var rueckgabe = xhr4.responseText;
			// Links anzeigen
			document.getElementById("view_linkliste__links").innerHTML = rueckgabe;
			linksLesen2links();
		}

		function linksLesen2links(){
			view.open('view_linkliste');
		}
	}

	function http(){
		var tmphttp;
		if(window.XMLHttpRequest){
			tmphttp = new XMLHttpRequest();
		} else if(window.ActiveXObject) {
			tmphttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		return tmphttp;
	}
