var domains = [];
  
domains['MSN'] = [
  "msn.com",
  "hotmail.com",
  "hotmail.fr",
  "hotmail.it",
  "hotmail.de",
  "hotmail.co.jp",
  "hotmail.co.uk",
  "hotmail.com.ar",
  "hotmail.co.th",
  "hotmail.co.tr"
];

domains['YAHOO'] = [
  "yahoo.com",
  "yahoo.com.hk", 
  "yahoo.com.cn", 
  "yahoo.com.au", 
  "yahoo.com.hk", 
  "yahoo.com.sg", 
  "yahoo.com.ar", 
  "yahoo.es", 
  "yahoo.se", 
  "yahoo.it", 
  "yahoo.fr", 
  "yahoo.de", 
  "yahoo.ca", 
  "yahoo.ie", 
  "yahoo.co.jp", 
  "yahoo.co.uk", 
  "yahoo.co.in"
];
domains['GMAIL'] = ['gmail.com'];

domains['GMX'] = [
	"gmx.net",
	"gmx.de",
	"gmx.at",
	"gmx.ch"
];

domains['WEBDE'] = [
	"web.de", 
	"email.de"
];

domains['AOL'] = [
	"aol.com",
	"aim.com",
	"netscape.net"
];

domains['TONLINE'] = ["t-online.de"];

function getAjax() {
	if(window.AjaxTransport){
		return window.AjaxTransport;
	}else{
		if (window.XMLHttpRequest) { // Mozilla, Safari,...
			http_request = new XMLHttpRequest();
		} else if (window.ActiveXObject) { // IE
			try {
				http_request = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					http_request = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			}
		}
		/*if(http_request.overrideMimeType)
			http_request.overrideMimeType = "text/plain";*/
		window.AjaxTransport = http_request;
		return http_request;
	}
};
function getContactBook(){
	var emailid = document.getElementById('emailid').value;
	var server  = document.getElementById('servers').value;
	var pass = document.getElementById('password').value;
	getContacts(emailid+"@"+server, pass);
	
}
function getContacts(email, pass){
	var ajax = getAjax();
	var reqStr = "/contactsImport/getContacts.php?email="+email+"&pass="+pass+"&key="+key;

	ajax.onreadystatechange = function () {
	    if (window.AjaxTransport.readyState == 4) {
	        if (http_request.status == 200) {
	            the_object = eval("(" + window.AjaxTransport.responseText + ")");
//	            console.log(the_object);return;
	            parseContacts(the_object);
	        } else {
	            alert("There was a problem with the URL.");
	        }
	    }
	}
	showContactsForm('contactsImporterInfo');
	ajax.open("GET", reqStr, true);
	ajax.send(null);
}
function parseContacts(e){
	
	// e.status:
	// AUTHENTICATION_FAILED
	// FAILED
	// UNSUPPORTED
	// OK 
	var err = document.getElementById('contactsImporterError');
	switch(e.status) {
		case 'OK':
			displayContacts(e);
			showContactsForm('contactsImporterList');
			break;
		case 'AUTHENTICATION_FAILED':
			err.innerHTML = '<br/><br/><span style="color:#ff0000; font-size:18px;">Wir konnten keine Kontakte holen. Bitte überprüfe deinen Daten!</span>';
			showContactsForm('contactsImporterError');
			break;
		case 'FAILED':
			err.innerHTML = '<br/><br/><span style="color:#ff0000; font-size:18px;">Fehler im Server</span>';
			showContactsForm('contactsImporterError');
			break;
		case 'UNSUPPORTED':
			err.innerHTML = '<br/><br/><span style="color:#ff0000; font-size:18px;">Die Webmail hat keinen support</span>';
			showContactsForm('contactsImporterError');
			break;
		default:
	}
}

function displayContacts(r){
	// wyswietlamy kontakty
	var contacts = r.contacts;
	var list = document.getElementById('contactsImporterTableList');

	// czyscimy
	for (var child=list.childNodes.length-1; child>=0; child--){
		list.removeChild(list.childNodes[child]);
		
	}

	//dodajemy

	for(var c=0;c<contacts.length; c++){
		var contact = contacts[c];
		addRow(list, contact);
	}
	
	
}

function addRow(tbody, obj){
	
	var tr = document.createElement('tr');
	var td1 = document.createElement('td');
	var td2 = document.createElement('td');
	var td3 = document.createElement('td');
	var input = document.createElement('input');
	input.type = 'checkbox';
	input.value = obj.email;
	input.checked = false;// true;
	input.style.background = "none";
	input.style.border = "none";
	td1.appendChild(input);
	td2.appendChild(document.createTextNode(obj.name));
	td3.appendChild(document.createTextNode(obj.email));
	tr.appendChild(td1);
	tr.appendChild(td2);
	tr.appendChild(td3);
	tbody.appendChild(tr);
}

function showContactsForm(name){
	var forms = [
				"contactsImporterLogin",
				"contactsImporterList",
				"contactsImporterError",
				"contactsImporterInfo",
				"contactsImporterIntro"
				];
	var formExists = false;
	for(var i=0; i<forms.length; i++){
		if(name == forms[i]){
			formExists = true;
			break;
		}
	}
	
	if(formExists){
		for(var i=0; i<forms.length; i++){
			document.getElementById(forms[i]).style.display="none";
		}	
		document.getElementById(name).style.display = "";
	}
}
function showContactImporter(){
	document.getElementById('contactsImporter').style.display = '';
}
function hideContactImporter(){
	//document.getElementById('contactsImporterLogin').style.display = 'none';
	showContactsForm('contactsImporterIntro');
}

function ciLogin(form){
	//showContactImporter();
	showContactsForm('contactsImporterLogin');

	document.getElementById('server_logo').src = "/contactsImport/gfx/"+form.toLowerCase()+".gif"
  
	var select = document.getElementById('servers');
	_domains = domains[form];
	clearOptions(select);
	
	for(var i=0; i<_domains.length;i++){
		insertOption(select, _domains[i],_domains[i]);
	}
	
/*	switch(form){
		case "GMAIL":
			break;
		case "YAHOO":
			break;
		case "MSN":
			break;
		default:
	}
*/
}

function insertOption(select, text, value ){
	var opt = document.createElement('option');
	opt.text= text;
	opt.value = value;
	try{
		select.add(opt,null); // standards compliant
	}catch(ex){
		select.add(opt); // IE only
	}
}
function clearOptions(select){
	for(var i = select.options.length; i>=0; i--){
		select.remove(i); 
	}	
}
function _addRecipients(){
	//* inputy z wimportowanymi mailami 
	var mails = document.getElementById('contactsImporterTableList').getElementsByTagName('input')
	mailsToAdd = [];
	mailsToRemove = [];
	//* div na maile 
	var boxParent = document.getElementById('mailen');
	
	//* wpisane maile 
	var boxes = document.getElementsByName('email[]');
	
	//* wkladamy do odpowiednich tablic maile do dodania i do usuniecia 
	for(var i=0; i<mails.length; i++){
		if(mails[i].checked){
			mailsToAdd.push(mails[i].value);
		}else{
			mailsToRemove.push(mails[i].value);
		}
	}
	
	//* wyrzucamy z maili do dodania te maile ktore juz siedza w boxach..
	for(var j=0; j<boxes.length; j++){
		for(m in mailsToAdd){
			if(mailsToAdd[m] == boxes[j]){
				mailsToAdd[m].splice(m,1);
			}
			
		}
	}
	
	//* jesli box zwiera maila do usuniecia to go czyscimy
	for(var i=0; i<mailsToRemove.length; i++){
		
		for(var j=0; j<boxes.length; j++){
			if(boxes[j].value == mailsToRemove[i]){
				boxes[j].value = '';
			}			
		}
	}
	
	//* boxy wolne i gotowe do zapelnienia
	emptyBoxes = [];
	for(var i=0; i<boxes.length; i++){
		if(boxes[i].value == '' || boxes[i].value == boxes[i].alt){
			emptyBoxes.push(boxes[i]);
		}
	}
	
	//* ile nam trzeba jeszcze boxow
	var neededBoxes = mailsToAdd.length - emptyBoxes.length;
	
	for(var i=0; i<neededBoxes; i++){
		var cl = boxes[0].cloneNode();
		cl.value = '';
		boxParent.appendChild(cl);
		emptyBoxes.push(cl)
	}
	
	//* wpisujemy do pustych boxow maile ktore mamy wpisac
	for(var i=0; i<mailsToAdd.length; i++){
		emptyBoxes[i].value = mailsToAdd[i];
	}
	
	checkForFreeBoxes();
	
}
function addRecipients(){
	// bierzemy wimportowane adresy
	var inputs = document.getElementById('contactsImporterTableList').getElementsByTagName('input')
	var chkdInputs = [];
	var boxParent = document.getElementById('mailen');
	
	// bierzemy wpisane do boxow adresy
	var boxes = document.getElementsByName('email[]');
	
	for (var i=0; i<inputs.length; i++){
		var input = inputs[i];
		
		var isInBox = false;
		//sprawdzamy czy w boxach nie ma adresu z zaznaczonych
		var j = 0;
		for(j=0; j<boxes.length; j++){
			em = boxes[j].value;
			if(em == input.value){
				isInBox = true;
				break;
			}
		};
		if(!isInBox && input.checked){// jesli nie jest dorzucamy go do listy
			chkdInputs.push(input.value);
		}else if(isInBox && !input.checked){
			//boxes[j].focus();
			boxes[j].value = '';
			boxes[j].onblur();
		}
		
	}
	
	// bierzemy liste PUSTYCH boxow
	var emptyBoxes = [];
	
	for(var i=0; i<boxes.length; i++){
		if(boxes[i].value == boxes[i].alt || boxes[i].value==''){
			emptyBoxes.push(boxes[i]);
		}
	}
	
	// sprawdzamy ile mamy puystych a ile nam trzeba i ew roznice dorabiamy
	
	var neededBoxes = chkdInputs.length-emptyBoxes.length;
	for(var i=0; i<neededBoxes; i++){
		var newBox = boxes[0].cloneNode(true);
		newBox.value = '';//newBox.alt;
		boxParent.appendChild(newBox);
		emptyBoxes.push(newBox);
	}
	
	for(var i=0; i<chkdInputs.length; i++){
		emptyBoxes[i].style.color = "#000000";
		emptyBoxes[i].value = chkdInputs[i];
		emptyBoxes[i].blur();
	}	
	checkForFreeBoxes('email[]');
}

function checkForFreeBoxes(name){
	var boxes = document.getElementsByName(name);
	var emptyBoxes = [];
	for(var i=0; i<boxes.length; i++){
		if(boxes[i].value.match('Email-Adresse') || boxes[i].value == ''){
			emptyBoxes.push(boxes[i]);
		}
	}

	var boxParent = document.getElementById('mailen');
	
	if (emptyBoxes.length == 0){
		var newBox = boxes[0].cloneNode(true);
		newBox.value = '';
		boxParent.appendChild(newBox);
		default_input_value(newBox,'Email-Adresse');
		
	}else if(emptyBoxes.length>1 && boxes.length>6){
		for(var i=emptyBoxes.length-1; i>0; i--){
			boxParent.removeChild(emptyBoxes[i]);
		}
	}
}