/* lots of code borrowed from the awesome article at http://www.dustindiaz.com/top-ten-javascript/ */

function insertAfter(parent, node, referenceNode) {
	parent.insertBefore(node, referenceNode.nextSibling);
}

function toogleDiv(div) {
	ref = $(div);
	
	if (ref.style.display == 'none') {
		new Effect.Appear($(div));
	} else {
		new Effect.Fade($(div));
	}
	return true;
}


/* 	div = div to place the user such as user1 user2 etc
		
*/

function hideDiv(div) {
		div_ref = $(div);
		if (div_ref) div_ref.style.visibility = 'hidden';
}



function isdefined(variable) {
    return (typeof(variable) == "undefined")?  false: true;
}



function checkField(checkSrc, ref_email, email ,warning) {

	if (email.length>0) {
			var req = new Ajax.Request(
			checkSrc,
			{
				postBody: 'value=' + encodeURIComponent(email),
				onComplete: function(transport) { 
																		if (transport.responseText == 'free') {
																			$(ref_email).src = 'images/status_free.gif';
																		} else {
																	
																			if ($(ref_email).src.indexOf('images/status_taken.gif')==-1) { alert(warning); }
																			$(ref_email).src = 'images/status_taken.gif';
																			
																		}
																	}
			}
		
		);
		
	}
}



function addOption(theSel, theText, theValue)
{
	var newOpt = new Option(theText, theValue);
	var selLength = theSel.length;
	theSel.options[selLength] = newOpt;
}

function deleteOption(theSel, theIndex)
{	
	var selLength = theSel.length;
	if(selLength>0)
	{
		theSel.options[theIndex] = null;
	}
}


function delSiteIPBlock(siteid,ip,indx) {
	delIPReq = new Ajax.Request(
		'ajax/block_ip_delete.php',
		{
				method: 'get',
				parameters: 'ip='+ip+'&scope=site&siteid='+siteid,
				onComplete: function(transport) {
					deleteOption($('ipblockselect_'+siteid), indx);
				}
			}
		);
}

function delUserIPBlock(ip,indx) {
	delIPReq = new Ajax.Request(
		'ajax/block_ip_delete.php',
		{
				method: 'get',
				parameters: 'ip='+ip+'&scope=user',
				onComplete: function(transport) {
					deleteOption($('ipblockselect'), indx);
				}
			}
		);
}




function delSiteRefBlock(siteid,ref,indx) {
	delRefReq = new Ajax.Request(
		'ajax/block_ref_delete.php',
		{
				method: 'get',
				parameters: 'ref='+ref+'&scope=site&siteid='+siteid,
				onComplete: function(transport) {
					deleteOption($('refblockselect_'+siteid), indx);
				}
			}
		);
}

function delUserRefBlock(ref,indx) {
	delRefReq = new Ajax.Request(
		'ajax/block_ref_delete.php',
		{
				method: 'get',
				parameters: 'ref='+ref+'&scope=user',
				onComplete: function(transport) {
					deleteOption($('refblockselect'), indx);
				}
			}
		);
}



function removeSelectedIPFromSelect(siteid,selectbox) {
	for(i=$(selectbox).length-1; i>=0; i--) {
		if($(selectbox).options[i].selected) {
			if (siteid == 0) {
				delUserIPBlock($(selectbox).options[i].value,i);
			} else {
				delSiteIPBlock(siteid,$(selectbox).options[i].value,i);
			}
		}
	}	
}



function removeSelectedRefFromSelect(siteid,selectbox) {
	for(i=$(selectbox).length-1; i>=0; i--) {
		if($(selectbox).options[i].selected) {
			if (siteid == 0) {
				delUserRefBlock($(selectbox).options[i].value,i);
			} else {
				delSiteRefBlock(siteid,$(selectbox).options[i].value,i);
			}
		}
	}	
}

function moveSelectedAuthFromSelect(siteid,fromselectbox,toselectbox,add) {
	for(i=$(fromselectbox).length-1; i>=0; i--) {
		if($(fromselectbox).options[i].selected) {
			if (add==1) {
				addSiteAuth(siteid,$(fromselectbox).options[i].value,i);
			} else {
				delSiteAuth(siteid,$(fromselectbox).options[i].value,i);
			}
		}
	}	
}


function addSiteAuth(siteid,ref,indx) {
	addAuthReq = new Ajax.Request(
		'ajax/auth_host_add.php',
		{
				method: 'get',
				parameters: 'site='+siteid+'&host='+ref,
				onComplete: function(transport) {
					addOption($('siteauthlistauthed_'+siteid), $('siteauthlist_'+siteid).options[indx].textContent, ref);
					deleteOption($('siteauthlist_'+siteid), indx);
					
				}
			}
		);
}

function moveFirstChildIfExists(el,siteid) {
	//console.log('moveFirstChildIfExists');
	if (el.childNodes.length>0) {
		//Effect.toggle(el.firstChild,'blind');
		el.firstChild.hide();
		ret = el.removeChild(el.firstChild);
		//console.log('parent,parent_test,ret,el');
		//console.log($('site_'+siteid));
		//console.log(el.parentNode);
		//console.log(ret);
		//console.log(el);
		$('site_'+siteid).insertBefore(ret,el.parentNode);
		//console.log('move klar');
		
	}
	return true;
}
function delSiteAuth(siteid,ref,indx) {
	addAuthReq = new Ajax.Request(
		'ajax/auth_host_del.php',
		{
				method: 'get',
				parameters: 'site='+siteid+'&host='+ref,
				onComplete: function(transport) {
					addOption($('siteauthlist_'+siteid), $('siteauthlistauthed_'+siteid).options[indx].textContent, ref);
					deleteOption($('siteauthlistauthed_'+siteid), indx);
					
				}
			}
		);
}




function toogleAuthorize(siteid,toogleText) {
	toogleAuthReq = new Ajax.Request(
		'ajax/auth_change.php',
		{
				method: 'get',
				parameters: 'siteid='+siteid,
				onComplete: function(transport) {
					if (transport.responseXML.getElementsByTagName('code')[0].textContent!=0) {
						alert('Fel: ' + transport.responseXML.getElementsByTagName('error')[0].textContent);
					} else {
						tmp = $('siteauth_'+siteid).firstChild.nodeValue;
						$('siteauth_'+siteid).firstChild.nodeValue = toogleText;
						$('siteauth_'+siteid).setAttribute('onclick','toogleAuthorize("'+siteid+'","'+tmp+'");');
					}
				}
				
		}
	);
}

function toogleAutoVerify(siteid,toogleText) {
	toogleAuthReq = new Ajax.Request(
		'ajax/auto_verify_change.php',
		{
				method: 'get',
				parameters: 'siteid='+siteid,
				onComplete: function(transport) {
					if (transport.responseXML.getElementsByTagName('code')[0].textContent!=0) {
						alert('Fel: ' + transport.responseXML.getElementsByTagName('error')[0].textContent);
					} else {
						tmp = $('siteautoverify_'+siteid).firstChild.nodeValue;
						$('siteautoverify_'+siteid).firstChild.nodeValue = toogleText;
						$('siteautoverify_'+siteid).setAttribute('onclick','toogleAutoVerify("'+siteid+'","'+tmp+'");');
					}
				}
				
		}
	);
}


function toogleReceiveEmail(siteid,toogleText) {
	toogleAuthReq = new Ajax.Request(
		'ajax/email_rec_change.php',
		{
				method: 'get',
				parameters: 'siteid='+siteid,
				onComplete: function(transport) {
					if (transport.responseXML.getElementsByTagName('code')[0].textContent!=0) {
						alert('Fel: ' + transport.responseXML.getElementsByTagName('error')[0].textContent);
					} else {
						tmp = $('siteemailrec_'+siteid).firstChild.nodeValue;
						$('siteemailrec_'+siteid).firstChild.nodeValue = toogleText;
						$('siteemailrec_'+siteid).setAttribute('onclick','toogleReceiveEmail("'+siteid+'","'+tmp+'");');
					}
				}
				
		}
	);
}


function siteShowCode(el) {
	 
	 Effect.toggle(el, 'blind');
	
}


function siteToggleTrackingCode(siteid) {
	//console.log('siteToggletracking');
	//console.log($('sitecode_'+siteid).visible());
	if ($('sitecode_'+siteid).visible()) {
		moveFirstChildIfExists($('general_holder_'+siteid),siteid);
	
	} else {
		//console.log('inserterar i holder...');
		//console.log($('sitecode_'+siteid));
		$('general_holder_'+siteid).appendChild($('sitecode_'+siteid));
		$('sitecode_'+siteid).show();
		

	}
}

function  siteToggleReport(siteid) {
	if ($('siteaddreport_'+siteid).visible()) {
		moveFirstChildIfExists($('general_holder_'+siteid),siteid);
	
	} else {
		$('general_holder_'+siteid).appendChild($('siteaddreport_'+siteid));
		$('siteaddreport_'+siteid).show();
		

	}
	
}

function siteShowCodeExpanded(el,holder,siteid) {
	console.log('siteShowCodeExpanded in the haouse');
	moveFirstChildIfExists($(holder),siteid);
	$(holder).appendChild($(el));
	//Effect.toggle(el, 'blind');
	$(el).show();
	
}

function siteShowEdit(siteid) {
	console.log('siteShowEdit in the haouse');
	 	moveFirstChildIfExists($('specific_holder_'+siteid),siteid);
	  $('specific_holder_'+siteid).appendChild($('siteedit_'+siteid));
	  //Effect.toggle('siteedit_'+siteid,'appear');
		Effect.toggle('siteedit_'+siteid, 'blind');
}

function toogleShowIPBlock(siteid) {
	if (siteid == 0) {
		ref = 'blockuserip';
	} else {
		ref = 'blocksiteip_'+siteid;
		moveFirstChildIfExists($('specific_holder_'+siteid),siteid);
		$('specific_holder_'+siteid).appendChild($(ref));
 	}
	Effect.toggle(ref, 'blind');
}

function toogleShowRefBlock(siteid) {
	if (siteid == 0) {
		ref = 'blockuserref';
	} else {
		ref = 'blocksiteref_'+siteid;
		moveFirstChildIfExists($('specific_holder_'+siteid),siteid);
		$('specific_holder_'+siteid).appendChild($(ref));
		Effect.toggle(ref, 'blind');
	}
}


