var handler = null;
var system = null;
var lock = false;

var equals = false;

var count = 0;
var first = true;
var firstyep = false;

var wImg = null;
var wLink = null;

var decission = 2;

var args = null;

// Laden der Seite
onload = function() 
{
	try
	{
		var div = document.getElementsByName("div_msg")[0];
		div.style.top = 230;
		div.style.left = (document.all) ? document.body.offsetWidth/2-250 : window.outerWidth/2-250;
		div.style.visibility = "visible";
	}
	catch(e) { }
	// Login
	wLink = document.getElementsByName("hl_login")[0];
	wLink.onclick = Click_hl_login;       
	
    handler = new YNPHandler();
    system = new SystemHandler();
    
    wImg = document.getElementsByName("div_profile")[0].getElementsByTagName("img");
     
    LoadData(); 
}

function ShowForget()
{
	document.getElementsByName("tb_forget")[0].value = document.getElementsByName("tb_username_login")[0].value;
	ChangeDisplay('div_forget');
	void(0);	
}

function LoadData()
{
	lock = true;
	var formular = document.forms["form_search"];
	// Geschlecht
	/*var obj = formular.ddl_sex;
	obj.options[0] = new Option("Frauen",0);
	obj.options[1] = new Option("Männer",1);
	
	obj.options[0].selected = true;*/
	
	// Suchprofil Alter
	obj = formular.ddl_sMinAge;	
	for(i=18; i<100; i++) obj.options[i-18] = new Option(i);	
	obj = formular.ddl_sMaxAge;	
	for(i=18; i<100; i++) obj.options[i-18] = new Option(i);
	
	// L�nder laden
	system.GetCountries(CallbackLoadCountries);
}

// L�nder laden
function CallbackLoadCountries(response) 
{
	var info = response.result;
	var obj = document.forms["form_search"].ddl_countries;
	
	for (var i = (obj.options.length-1); i >= 0; i--)
	{
		obj.options[i]=null;
	}
	for(i=0,j=0;i<info.length;i=i+4,j++)
	{
		obj.options[j] = new Option(info[i],info[i+1] + "_" + info[i+2] + "_" + info[i+3]);
	}
	
	// Profildaten laden
	LoadProfile();
}

function CloseMsg(box)
{
	var div = document.getElementsByName(box)[0];
	div.style.visibility = (div.style.visibility == "hidden") ? "visible" : "hidden";
	document.getElementsByName("la_login")[0].innerHTML = "";
}

function ChangeDisplay(box)
{
	var div = document.getElementsByName(box)[0];
	div.style.display = (div.style.display == "none") ? "block" : "none";
	document.getElementsByName("la_login")[0].innerHTML = "";
}

// Profildaten vom Server laden und 
function LoadProfile()
{
	handler.LoadProfileInfo(false, true, true , CallbackLoadProfile);	
}

// Profildaten anzeigen
function CallbackLoadProfile(response) 
{
	var info = response.result;
	var form_search = document.forms["form_search"];
	
	// Ich Suche �bersteuern durch QueryString g=
	args = getArgs();
	
	if (args.g) 
	{ 
		info.sSex = args.g;
		if(args.g == 1)
		{
			info.pSex = 0;
		}
		else
		{
			info.pSex = 1;
		}
	}
	
	// Geschlecht
	form_search.ddl_sex.options[info.sSex].selected = true;
	
	equals = (info.sSex == info.pSex);
	
	//Alter
	if(info.sMinAge < 18) info.sMinAge = 18;
	if(info.sMaxAge < 18) info.sMaxAge = 99;
	form_search.ddl_sMinAge.options[info.sMinAge-18].selected = true;	
	form_search.ddl_sMaxAge.options[info.sMaxAge-18].selected = true;	
	
	// Land
	for (var i = 0; i < form_search.ddl_countries.length; i++) 
	{
		if(form_search.ddl_countries.options[i].value.indexOf(info.countrycode) > -1 )
		{
			form_search.ddl_countries.options[i].selected = true;
			break;
		}
	}
	
	// PLZ
	form_search.tb_plz.value = info.postalcode;
	
	// City
	form_search.ddl_city.options[0] = new Option(info.city);
		
	// Neues Profil erstellen!!
	// Bei gleichgeschlechtlichen nichts machen, da die Profile bereits vorhanden!
	if(equals)
	{
		lock = false;
    	GetNextImageFromServer(2, true);
    }
    else
    {
		SaveNewProfile(true);
	}
}

function SaveSex()
{
	if(!lock)
	{
		SaveNewProfile(false);
	}	
}

function SaveAge()
{
	wImg[0].src = "/pictures/pic_indicator_foto.gif";
	if(!lock)
	{	
		var formular = document.forms["form_search"];
		var obj = 0;
		var hashtable = new Object();
		// Alter
		var minvalue = 18;
		var maxvalue = 99;
		obj = formular.ddl_sMinAge;
	  	for (var i = 0; i < obj.length; i++) 
	  	{
			if(obj.options[i].selected)
			{
				minvalue = obj.options[i].text;
				hashtable['min_age'] = parseInt(minvalue);
				break;
			}
	  	}
	  	obj = formular.ddl_sMaxAge;
	  	for (var i = 0; i < obj.length; i++) 
	  	{
			if(obj.options[i].selected)
			{
				maxvalue = obj.options[i].text;
				hashtable['max_age'] = parseInt(maxvalue);
				break;
			}
	  	}
	  	if(	minvalue > maxvalue)
	  	{
	  		hashtable['max_age'] = parseInt(minvalue);
	  		hashtable['min_age'] = parseInt(maxvalue);
	  	}		
		handler.SaveTempProfile(hashtable, true, CallbackSaveSearchTemp);
	}	
}

function SaveNewProfile(first)
{
	wImg[0].src = "/pictures/pic_indicator_foto.gif";
	if(!lock || first)
	{	
		var obj = 0;
		var hashtableProfile = new Object();
		var hashtableSearchProfile = new Object();
		// Wenn keine Referenz vorhanden ist, dann muss das Profil und Suchprofil
		// zuerst erstellt werden
		obj = document.forms["form_search"].ddl_sex;
		for (var i = 0; i < obj.length; i++) 
	  	{
			if(obj[i].selected)
			{
				obj = obj[i].value;
				hashtableSearchProfile['sex'] = (obj == 0) ? 0 : 1; 
				hashtableProfile['sex'] = (obj == 0) ? 1 : 0; 
				break;
			}
		}
	
		handler.SaveNewProfile(hashtableProfile, hashtableSearchProfile, CallbackSaveSearchTemp);
	}
}

function CallbackSaveSearchTemp(response) 
{ 
	lock = false;
    GetNextImageFromServer(2, true);
}

function GetNextImageFromServer(matching, isTempProfile)
{
	decission = matching;
	if(!lock)
	{
		if(decission == 1 && wImg[0].id > 0) { count++; firstyep = true; }
		if(decission != 2) { first = false; }
		if(decission == 0 && wImg[0].id > 0) firstyep = false;
		
		lock = true;
		wImg[0].src = "/pictures/pic_indicator_foto.gif";	
		
		handler.GetNextImage(decission, wImg[0].id , isTempProfile, CallbackNextImage);	
	}
}

function CallbackNextImage(response) 
{ 
    var info = response.result;
    
    if(info.matchCount >= 1 && firstyep == true)
	{
		window.location = "signup_picture.aspx";
	}
	else
	{
	    if(info.noMatch)
	    {
	    	wImg[0].src = "/pictures/pic_nomatch.jpg";
	    	wImg[0].id = -1;
	    	wImg[0].title = "";
	    	
	    	document.getElementsByName("div_desc")[0].style.display = "block";
	    	document.getElementsByName("div_desc2")[0].style.display = "none";
	    	
	    	document.getElementsByName("div_adsense")[0].style.display = "block";
	    	
	    	document.getElementsByName("div_profile")[0].style.display = "none";		    	
	    }
	    else
	    {
	    	document.getElementsByName("div_adsense")[0].style.display = "none";
	    	
	    	document.getElementsByName("div_profile")[0].style.display = "block";
	    			
			// Wenn leer, dann Adressdaten von Mitglied
			var formular = document.forms["form_search"];
			if(formular.tb_plz.value == "")
			{
				formular.tb_plz.value = info.postalcode;
				var obj = formular.ddl_city;			
				for (var i = (obj.options.length-1); i >= 0; i--)
				{
					obj.options[i]=null;
				}
				obj.options[0] = new Option(info.city);			 
			}   

		    wImg[0].src = info.placeholder; //"/pictures/members/"+info.id_member+"_b.jpg";
		    wImg[0].id = info.id_member;
		    wImg[0].title = info.nickname + ", " + info.age + ", " + info.city + ", " + info.countrycode; 
		    
		   	document.getElementsByName("div_desc")[0].style.display = "none";
	    	document.getElementsByName("div_desc2")[0].style.display = "block";
			document.getElementsByName("div_desc2")[0].innerHTML = "<br><b>" + info.nickname + ", " + info.age + ", " + info.city + ", " + info.countrycode + "</b><br><br>" + info.description;		    
	    }
	    if(decission == 2)
	    {
	    	GetDynlist();
	    	document.getElementsByName("s_dynlist")[0].innerHTML = "Weitere Singles aus " + form_search.ddl_city.options[0].text + " und Umgebung:";
	    }
	    else
    	{
    		lock = false;
    	}
	}
}

// Authentifizierung des benutzers
function Authenticate()
{
	username = document.forms["login"].tb_username_login.value;
	password = document.forms["login"].tb_password_login.value;
	autologin = document.forms["login"].cb_autologin.checked;
	
	handler.AuthenticateUser(username, password, autologin, CallbackAuthenticate);
}

// Profildaten anzeigen
function CallbackAuthenticate(response) 
{
	if(response.result.hasError)
	{
		document.getElementsByName("la_login")[0].innerHTML = "<table class='width_500'><tr><td class='center red'><br>"+response.result.processMessage+"</td></tr></table>";
	}
	else
	{
		window.location = "account.aspx";
	}
}

// Passwort zusenden
function SendPassword()
{
	username = document.forms["login"].tb_forget.value;
	
	handler.SendPassword(username, CallbackSendPassword);
}

// Profildaten anzeigen
function CallbackSendPassword(response) 
{
	document.getElementsByName("la_login")[0].innerHTML = "<table class='width_500'><tr><td class='center red'><br>"+response.result.processMessage+"</td></tr></table>";
}



function Click_hl_login(e)
{
	ShowMsgBox("div_login");
	
	if(document.getElementsByName("div_login")[0].style.visibility == "visible")
	{ 
		if(document.forms["login"].tb_username_login.value == "")
		{
			document.forms["login"].tb_username_login.focus();
		}
		else
		{
			document.forms["login"].tb_password_login.focus();
		}
	}

	return false;
}

function CleanAddress()
{
	var formular = document.forms["form_search"];
	var obj = formular.ddl_city;
	countryCode = "CH";
	for (var i = (obj.options.length-1); i >= 0; i--)
	{
		obj.options[i]=null;
	}
	formular.tb_plz.value = "";
	
	// Country in Cookie speichern
	obj = formular.ddl_countries;
  	for (var i = 0; i < obj.length; i++) 
  	{
		if(obj.options[i].selected)
		{
			countryCode = obj.options[i].value;	
			break;
		}
  	}	
	
	handler.SetCountry(countryCode, CallbackSetCountry);		
}

function CallbackSetCountry(response) 
{
	if(!lock)
	{
	    lock = true;

	    var domain = response.result.split("_")[2];
	    var host = window.location.hostname;
	    if (host.substr(10) != domain)
	    {	    
	        if (host.substr(0, 3) == "lab")
	            window.location.href = "http://lab.yepnep." + domain;
	        else
	            window.location.href = "http://www.yepnep." + domain;
	            
	        return;
	    }
		handler.SaveTempMatchTable(CallbackSaveSearchTemp);
	}	
}

// Anhand der Postleitzahl die Ortschaften laden
function LoadCity(num)
{
	var code = "ch";
	code = document.forms["form_search"].ddl_countries;
	for (var i = 0; i < code.length; i++) 
	{
		if(code.options[i].selected)
		{
			code = code.options[i].value;
			break;
		}
	}
	
	var country = code.split("_");
	
	if(num != "" && num.length >= country[1])
	{
		system.GetCityByPostalCode(num, country[0], CallbackLoadCity);
	}
}

function CallbackLoadCity(response) 
{
	var info = response.result;
	var obj = document.forms["form_search"].ddl_city;
	
	for (var i = (obj.options.length-1); i >= 0; i--)
	{
		obj.options[i]=null;
	}
	
	for(i in info)
	{
		obj.options[i] = new Option(info[i]);	
	}
	if(!lock)
	{
		lock = true;
		handler.SaveTempMatchTable(CallbackSaveSearchTemp);
	}
}

// Anhand der Ortschaft die Postleitzahl laden
function LoadPostalcode(selection)
{
	var city;
	var code = "ch";
	for (var i = 0; i < selection.length; i++) 
	{
		if(selection.options[i].selected)
		{
			city = selection.options[i].text;
			break;
		}
	}
	code = document.forms["form_search"].ddl_countries;
	for (var i = 0; i < code.length; i++) 
	{
		if(code.options[i].selected)
		{
			code = code.options[i].value;
			break;
		}
	}	
	
	var country = code.split("_");
		
	system.GetPostalCodeByCity(city, country[0], CallbackLoadPostalcode);
}

function CallbackLoadPostalcode(response) 
{
	var info = response.result;
	for(i in info)
	{
		document.forms["form_search"].tb_plz.value = info[i];	
		break;
	}
	if(!lock)
	{
		lock = true;
		handler.SaveTempMatchTable(CallbackSaveSearchTemp);
	}
}

function ChangeImage(img)
{
	if(img.src.indexOf("_on") > 1)
	{
		img.src = img.src.replace("_on","");
	}
	else
	{
		img.src = img.src.replace(".gif","_on.gif");
	}	
}

// Login Box anzeigen
function ShowMsgBox(boxname)
{
	wProfile = document.getElementsByName(boxname)[0];
	wProfile.style.visibility = (wProfile.style.visibility == "hidden") ? "visible" : "hidden";

	wProfile.style.top = 230;
	wProfile.style.left = (document.all) ? document.body.offsetWidth/2-280 : window.outerWidth/2-280;
}

function HighlightStart(onout)
{
	if(onout)
	{
		//document.getElementsByName("hl_startpage")[0].style.backgroundColor = "#FFEBF5";
		document.getElementsByName("hl_startpage")[0].style.textDecoration = "underline";
	}
	else
	{
		//document.getElementsByName("hl_startpage")[0].style.backgroundColor = "transparent";
		document.getElementsByName("hl_startpage")[0].style.textDecoration = "none";
	}
}

// Dynamische listen holen
function GetDynlist()
{
	handler.GetDynlist(CallbackGetDynlist);
}

function CallbackGetDynlist(response)
{
	var info = response.result;
	for(var i in info)
	{
		var img = document.getElementsByName("img_date_"+i)[0];
		if(info[i] && info[i].id_member > 0)
		{
			img.src = "/pictures/members/"+info[i].id_member+"_s.jpg";
			img.title = info[i].nickname + ", " + info[i].age + ", " + info[i].city + ", " + info[i].countrycode; 
		}
		if(i == 8) break;
	}	
	
	lock = false;
}


function getArgs() 
{
	var args = new Object();
	var query = location.search.substring(1);
	var pairs = query.split("&");
	for(var i = 0; i < pairs.length; i++) {
		var pos = pairs[i].indexOf('=');
		if (pos == -1) continue;
		var argname = pairs[i].substring(0,pos);
		var value = pairs[i].substring(pos+1);
		args[argname] = unescape(value);
	}
	return args;
}

function ChangeLang(lang)
{
    var exp = new Date();
    exp.setTime(exp.getTime() + (30 * 24 * 60 * 60 * 1000));
    document.cookie = "globalization=lang=" + lang + "; expires=" + exp.toGMTString() + "; path=/";
}