// JavaScript Document

function istoosmall( pw ) {    
	if( pw.length < 4 ) 
	{
		return true;
	}
	else{
		return false;
	}
}

function isfair( pw ) 
{
	if( pw.length < 8 ) 
	{
    	return false;
    }
    else{ 
        return true;
    }
}

function hasnum( pw ) {
	var hasnum = false;
    
	for( var counter = 0; counter < pw.length; counter ++ ) 
	{
    	if( !isNaN( pw.charAt( counter ) ) ) {
    		hasnum = true;
    	}
    }
    
    return hasnum;
}

function validEmail(divid)
{
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	var emailDiv = document.getElementById(divid);

	if(emailDiv.value.match(emailExp))
	{
		return true;
	}
	else{
		return false;
	}
}

function checkRadioChecked( radio1 )
{
	var foundOne = false;
	
	if( document.getElementById(radio1).checked == true )
	{
		return true;	
	}
	else{
		return false;	
	}
}

function updatePasswordStrength( pw, divid ) 
{
    if( istoosmall( pw ) ) {
    	document.getElementById( divid ).className = 'pass_tooshort';
    }
    else if( !isfair( pw ) ) { 
    	document.getElementById( divid ).className = 'pass_weak';
    }    
    else if( hasnum( pw ) ) {
    	document.getElementById( divid ).className = 'pass_strong';
    }
    else {
    	document.getElementById( divid ).className  = 'pass_normal';
    }
}

function checkUsernameAvailable( usernameBox, divToChange, divToToggle, currentSkin )
{
	var usernameText = document.getElementById( usernameBox ).value;
	var divTextBox = document.getElementById( divToChange );
	var divToVisualize = document.getElementById( divToToggle );
	
	toggleDiv( divToChange, '<img src="skins/' + currentSkin + '/ajax-loader.gif" alt="Loading">', true );
	divToVisualize.style.display = 'block';
	
	ajaxpage( 'scripts/php/checkusername.php', divToChange, usernameText );
	
	return true;
}

function checkLenght( textbox, size )
{
	if( document.getElementById( textbox ).value.length < size )
	{
		return false;
	}
	else{
		return true;	
	}
}

function checkCompair( firstTextBox, secondTextBox )
{
	if( document.getElementById( firstTextBox ).value == document.getElementById( secondTextBox ).value )
	{
		return true;
	}
	else{
		return false;	
	}
}

function toggleDiv( divName, divText, show )
{
	var curDiv = document.getElementById( divName );
	curDiv.innerHTML = divText;
	
	if( show == true )
	{
		curDiv.style.display = 'block';
	}
	else{
		curDiv.style.display = 'none';
	}
}

function checkRegister()
{
	var allOke = true;
	
	if( document.getElementById( 'txtUsername' ).value.length < 6 )
	{
		allOke = false;
		document.getElementById( 'txtUsernameCheck' ).style.display='block';
	}
	else{
		document.getElementById( 'txtUsernameCheck' ).style.display='none';
	}
	
	if( document.getElementById( 'txtPassword' ).value.length < 4 )
	{
		allOke = false;
		document.getElementById( 'txtPasswordCheck' ).style.display='block';
	}
	else{
		document.getElementById( 'txtPasswordCheck' ).style.display='none';
	}
	
	if( document.getElementById( 'txtPassword' ).value != document.getElementById( 'txtConfirm' ).value )
	{
		allOke = false;
		document.getElementById( 'txtConfirmCheck' ).style.display='block';
	}
	else{
		document.getElementById( 'txtConfirmCheck' ).style.display='none';
	}
	
	if( !emailValidator(document.getElementById( 'txtEmail' )) )
	{
		allOke = false;
		document.getElementById( 'txtEmailCheck' ).style.display='block';
	}
	else{
		document.getElementById( 'txtEmailCheck' ).style.display='none';
	}
	
	if( !radioValidator() )
	{
		allOke = false;
		document.getElementById( 'txtTypeCheck' ).style.display='block';
	}
	else{
		document.getElementById( 'txtTypeCheck' ).style.display='none';
	}
	
	return allOke;
}

function removeMenuObject( listId, objId, moveUp )
{
	var listContainer = document.getElementById( unescape(listId) );
	var deleteItem = document.getElementById( unescape(objId) );
	listContainer.removeChild( deleteItem );
}

function changeMenuVisibleObject( listId, objId, skinPath, visible )
{
	var visibleDiv = document.getElementById( objId + ' Visible' );
	
	var visibleLink = document.getElementById( objId + ' VisibleLink' );
	var invisibleLink = document.getElementById( objId + ' InvisibleLink' );
	
	alert('Visible Div: ' + visibleDiv);
	alert('Visible Link: ' + visibleLink);
	alert('Invisible Link: ' + invisibleLink);
	
	visibleDiv.value = visible;
	
	if( visible )
	{
		visibleLink.style.visibility = 'visible';
		invisibleLink.style.visibility = 'hidden';
	}
	else
	{
		visibleLink.style.visibility = 'hidden';
		invisibleLink.style.visibility = 'visible';
	}
}

function url_decode(utftext) 
{
	var string = "";
	var i = 0;
	var c = c1 = c2 = 0;
 
	while ( i < utftext.length ) 
	{
		c = utftext.charCodeAt(i);
 
		if (c < 128) {
			string += String.fromCharCode(c);
			i++;
		}
		else if((c > 191) && (c < 224)) 
		{
			c2 = utftext.charCodeAt(i+1);
			string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
			i += 2;
		}
		else 
		{
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
		}
 
	}
 
	return string;
}

function moveMenuObject( listId, objId, moveUp )
{
	var listContainer = document.getElementById( unescape(listId) );
	var listItems = listContainer.getElementsByTagName( "li" );
	var clickedObject;
	var clickedNumber = 0;
		
	alert("ListId: " + unescape(listId));
	alert("ObjId: " + unescape(objId));
		
	for ( var i = 0, n = listItems.length; i < n; i++ ) 
	{
		if( listItems.item(i).id == unescape(objId) )
		{
			clickedObject = listItems.item(i);
			clickedNumber = i;
		}
	}
		
	if( moveUp )
	{
		if( clickedNumber > 0 )
			clickedNumber -= 1;
	}
	else{
		if( clickedNumber < (listItems.length - 1) )
			clickedNumber += 2;
	}
			
	listContainer.insertBefore( clickedObject, listItems.item(clickedNumber) );
}

function addMenuItem(listId, skinpath, nameId, urlId, guestId, memberId)
{
	var Parent = document.getElementById(listId);
	
	var nameObject = document.getElementById(nameId);
	var urlObject = document.getElementById(urlId);
	var guestObject = document.getElementById(guestId);
	var memberObject = document.getElementById(memberId);
	
	var NewLI = document.createElement("LI");
	NewLI.id = nameObject.value;
	
	NewLI.innerHTML = 	'<input type="hidden" name="' + nameObject.value + ' Link" id="' + nameObject.value + ' Link" value="' + urlObject.value + '">' +
						'<input type="hidden" name="' + nameObject.value + ' Guest" id="' + nameObject.value + ' Guest" value="' + guestObject.value + '">' +
						'<input type="hidden" name="' + nameObject.value + ' Member" id="' + nameObject.value + ' Member" value="' + memberObject.value + '">' +
						'<input type="hidden" name="' + nameObject.value + ' Visible" id="' + nameObject.value + ' Visible" value="true">' +
						'<table width=\"295\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">' +
						'<tr><td>' +
						'&nbsp;<a href="#" style="visibility:visible;" id="' + nameObject.value + ' VisibleLink" onClick="javascript:changeMenuVisibleObject(\'menuItems\', \'' + nameObject.value + '\', \'' + skinpath + '\', false);SaveMenuFile();\"><img id=\"' + nameObject.value + ' Image" border="0" alt="Visible" src="skins/' + skinpath + '/images/admin_visible.png"></a> ' + 
						'&nbsp;<a href="#" style="visibility:hidden;" id="' + nameObject.value + ' InvisibleLink" onClick="javascript:changeMenuVisibleObject(\'menuItems\', \'' + nameObject.value + '\', \'' + skinpath + '\', true);SaveMenuFile();\"><img id=\"' + nameObject.value + ' Image" border="0" alt="Invisible" src="skins/' + skinpath + '/images/admin_invisible.png"></a>' + 
						'&nbsp;&nbsp;' + nameObject.value +
						'</td><td align="right">' +
						'<a href="#" onClick="javascript:moveMenuObject(\'menuItems\', \'' + escape(nameObject.value) + '\', true);SaveMenuFile();"><img border="0" alt="Move Up" src="skins/' + skinpath + '/images/admin_upicon.png"></a> ' +
						'<a href="#" onClick="javascript:moveMenuObject(\'menuItems\', \'' + escape(nameObject.value) + '\', false);SaveMenuFile();"><img border="0" alt="Move Down" src="skins/' + skinpath + '/images/admin_downicon.png"></a> ' +
						'<a href="#" onClick="javascript:removeMenuObject(\'menuItems\', \'' + escape(nameObject.value) + '\');SaveMenuFile();"><img border="0" alt="Delete" src="skins/' + skinpath + '/images/admin_deleteicon.png"></a>';
						'</td></tr>'+ 
						'</table>';

	Parent.appendChild(NewLI);
	
	SaveMenuFile();
}

function SaveMenuFile()
{
	var listContainer = document.getElementById( 'menuItems' );
	var listItems = listContainer.getElementsByTagName( "li" );
	var listData = '<?PHP\n$_SETTINGS["layout"]["menubar"] = array(\n';
		
	for ( var i = 0, n = listItems.length; i < n; i++ ) 
	{
		var linkDiv = document.getElementById( listItems.item(i).id + ' Link' );
		var guestDiv = document.getElementById( listItems.item(i).id + ' Guest' );
		var memberDiv = document.getElementById( listItems.item(i).id + ' Member' );
		var visibleDiv = document.getElementById( listItems.item(i).id + ' Visible' );
		
		listData += 'array( "' + listItems.item(i).id + '", "' + linkDiv.value + '", ' + guestDiv.value + ', ' + memberDiv.value + ', ' + visibleDiv.value + ' )';
		
		if( i < (listItems.length - 1) )
			listData += ',\n';
	}
		
	listData += ');\n?>';
	
	ajaxpage( 'scripts/php/savemenufile.php', 'undefined', listData );
	
	return true;
}

function ReSize()
{
	var max = 0;
	var args=ReSize.arguments;
	
	for (var max=0,zxc3=0;zxc3<args.length;zxc3++){
		var tmpObject = document.getElementById(args[zxc3]);
		if( !tmpObject )
			return;
	}
	
	for (var max=0,zxc0=0;zxc0<args.length;zxc0++){
		document.getElementById(args[zxc0]).style.height='auto';
	}
	
	for (var max=0,zxc1=0;zxc1<args.length;zxc1++){
		max = Math.max( max, document.getElementById(args[zxc1]).offsetHeight );
	}
			
	for (var zxc2=0;zxc2<args.length;zxc2++){
		document.getElementById(args[zxc2]).style.height=max+'px';
	}
}