
//####################################
// CREATE ARRAYS AND VARIABLES
//####################################

var cat_name1 = new Array();
var cat_id1 = new Array();
var cat_path1 = new Array();
//var cat_suggest_id = new Array();
//var cat_suggest_name = new Array();
//var cat_suggest_parent = new Array();
// var cat_suggest_count = 0;

//####################################
// LOAD NEW CATEGORY
//####################################

function loadCat(cat_id,cat_parent,cat_name,cat_path,maxCats,error_max,error_is_cat) {

	// Reset "other" field
	/*
	if (window.frames["category"].document.getElementById('other')) {
		if (window.frames["category"].document.getElementById('other').value != '') {
			cat_suggest_count++;
			window.frames["category"].clearOther
		}
	}
	*/
	
	// Check if 3 categories have already been selected (this is the maximum)
	if (cat_name1.length >= 3) {

		displayError(error_max,1,'','false');
		
	} else {

		// Check if category is already in array and set var
		for (i=0; i < cat_id1.length; i++) {
			if (cat_id1[i] == cat_id) {
				var inCatArray = 1;
			}
		}
	
		// If category has already been selected print an error
		if (inCatArray == 1) {
		
			displayError(error_is_cat,1,'','false');
		
		} else {
	
			// Check the size of the current array and then add the new category
			if (cat_name1.length == 0)
				var j = 0;
			else
				var j = cat_name1.length;
		
			cat_name1[j] = cat_name;
			cat_id1[j] = cat_id;
			cat_path1[j] = cat_path;
			
			// Adjust the height of the table
			adjustEditHeight();
		
			// Write the innerHTML to the page
			writeCatInnerHTML();
		}
	}
}

//####################################
// DELETE CATEGORY
//####################################

function deleteCat(cat_id) {

	// Create a second set of arrays
	var j = 0;
	var cat_name2 = new Array();
	var cat_id2 = new Array();
	var cat_path2 = new Array();

	// Check if each category is the one to delete from the original array
	for (i=0; i < cat_name1.length; i++) {

		if (cat_id1[i] != cat_id) {
			cat_name2[j] = cat_name1[i];
			cat_id2[j] = cat_id1[i];
			cat_path2[j] = cat_path1[i];
			j++;
		}
	}

	// Move the new arrays to the original
	cat_name1 = cat_name2;
	cat_id1 = cat_id2;
	cat_path1 = cat_path2;
	
	/*
	// Create a second set of arrays
	var j = 0;
	var cat_suggest_id2 = new Array();
	var cat_suggest_name2 = new Array();
	var cat_suggest_parent2 = new Array();

	for (i=0; i < cat_suggest_id.length; i++) {

		if (cat_suggest_id[i] != cat_id) {
			cat_suggest_id2[j] = cat_suggest_id[i];
			cat_suggest_name2[j] = cat_suggest_name[i];
			cat_suggest_parent2[j] = cat_suggest_parent[i];
			j++;
		}
	}
	
	// Move the new arrays to the original
	cat_suggest_id = cat_suggest_id2;
	cat_suggest_name = cat_suggest_name2;
	cat_suggest_parent = cat_suggest_parent2;
	*/
	
	// Adjust the height of the table
	adjustEditHeight();
	
	// Write the innerHTML to the page
	writeCatInnerHTML();
	
	// Reset the Other field
	//window.frames["category"].clearOther();
}

//####################################
// WRITE CAT INNER HTML
//####################################

function writeCatInnerHTML() {

	var html = '';

	var i = cat_name1.length - 1;
	while (i >= 0) {
	
		html = html + cat_name1[i]+'<br><span class="edit_iframe_format_text">'+cat_path1[i]+'</span> <span class="edit_iframe_format_delete"><a href="" onClick="deleteCat(\''+cat_id1[i]+'\'); return false;">delete</a></span><br>';

		i--;
	}
	
	var html = html + '</table>';

	document.getElementById('cat_name_div').innerHTML = html;
	
	document.getElementById('cat_id').value = cat_id1;
	
	//document.getElementById('cat_suggest_name').value = cat_suggest_name;
	
	//document.getElementById('cat_suggest_parent').value = cat_suggest_parent;
}

//####################################
// LOAD OTHER
//####################################

/*
function loadOther (cat_name,cat_path,cat_parent) {

	// Check if this category exists for this path
	for (i=0; i < cat_suggest_name.length; i++) {
		if (cat_name == cat_suggest_name[i] && cat_parent == cat_suggest_parent[i])
			var catExists = 1;
	}
	
	if (catExists == 1) {
	
		displayError("You have already suggested this as a category.",1,'','false');
		
		// Reset the Other field
		//window.frames["category"].clearOther();
		
	} else {
	
		if (cat_name1.length == 0)
			var j = 0;
		else
			var j = cat_name1.length;
			
		var cat_id = cat_suggest_count + 10000;
		
		cat_id1[j] = cat_id;
		cat_name1[j] = cat_name + ' <span style="color:blue; font-size:8pt">(suggested)</span>';
		cat_path1[j] = cat_path;
	
		if (cat_suggest_id.length == 0)
			var k = 0;
		else
			var k = cat_suggest_id.length;
		
		cat_suggest_id[k] = cat_id;
		cat_suggest_name[k] = cat_name;
		cat_suggest_parent[k] = cat_parent;
		
		cat_suggest_count++;
		
		// Write the innerHTML to the page
		writeCatInnerHTML();
	}
}
*/

//####################################
// LOAD REGION
//####################################

var region_name1 = new Array();
var region_id1 = new Array();
var region_parent1 = new Array();
var region_path1 = new Array();

function loadRegion(region_id,region_parent,region_name,region_path,maxRegions,error_max_reg,error_is_reg) {

	// Check if all regions have been selected
	for (i=0; i < region_id1.length; i++) {
		if (region_id1[i] == 0 || region_id1[i] == region_parent)
			var allRegionsSelected = 1;
	}
	
	// Check if children of a selected parent have been already been selected
	for (i=0; i < region_parent1.length; i++) {
		if (region_id == region_parent1[i])
			var childrenSelected = 1;
	}
	
	// Check if children exist and are trying to add all regions
	if (region_parent1.length > 0 && region_id == 0)
		var childrenExist = 1;
		
	// Check if category is already in array
	for (i=0; i < region_id1.length; i++) {
		if (region_id1[i] == region_id)
			var inRegionArray = 1;
	}
	
	if (allRegionsSelected == 1 || childrenSelected == 1 || childrenExist == 1 || region_name1.length >= maxRegions || inRegionArray == 1) {
		
		//if (allRegionsSelected == 1)
		//	displayError("You cannot add further sub-regions as you have already selected this region\'s parent. If you select a sub-region your listing will automatically be added to the parent region.",1,'','false');
		//if (childrenSelected == 1)
		//	displayError("You cannot add this region as you have already selected sub-regions. Your listing will be automatically added to the parent region of any sub-regions you add.",1,'','false');
		//if (childrenExist == 1)
		//	displayError("You cannot add all regions as you have already selected sub-regions.",1,'','false');
		if (region_name1.length >= maxRegions)
			displayError(error_max_reg,1,'','false');
		if (inRegionArray == 1)
			displayError(error_is_reg,1,'','false');
		
	} else {

		if (region_name1.length == 0)
			var j = 0;
		else
			var j = region_name1.length;

		region_name1[j] = region_name;
		region_id1[j] = region_id;
		region_parent1[j] = region_parent;
		region_path1[j] = region_path;
	
		writeRegionInnerHTML();
	}
}

//####################################
// WRITE REGION INNER HTML
//####################################

function writeRegionInnerHTML() {

	var html = '';

	var i = region_name1.length - 1;
	while (i >= 0) {

		html = html + region_name1[i]+'<br><span class="edit_iframe_format_text">'+region_path1[i]+'</span> <span class="edit_iframe_format_delete"><a href="" onClick="deleteRegion(\''+region_id1[i]+'\'); return false;">delete</a></span><br>';

		i--;
	}
	
	if (region_name1.length > 3)
		document.getElementById('region_name_div').style.height = 110;
		
	// Adjust the height of the table
	adjustEditHeight();

	document.getElementById('region_name_div').innerHTML = html;
	
	document.getElementById('region_id').value = region_id1;
}

//####################################
// ADJUST EDIT HEIGHT
//####################################

function adjustEditHeight() {
	/*
	if (region_name1.length >= 3 || cat_name1.length == 3)
		document.getElementById('edit_iframe_wrapper').style.height = 370;
	if (region_name1.length == 2 && cat_name1.length <= 2)
		document.getElementById('edit_iframe_wrapper').style.height = 330;
	if (cat_name1.length == 2 && region_name1.length <= 2)
		document.getElementById('edit_iframe_wrapper').style.height = 330;
	if (region_name1.length == 1 && cat_name1.length <= 1)
		document.getElementById('edit_iframe_wrapper').style.height = 290;
	if (cat_name1.length == 1 && region_name1.length <= 1)
		document.getElementById('edit_iframe_wrapper').style.height = 290;
	if (cat_name1.length == 0 && region_name1.length == 0)
		document.getElementById('edit_iframe_wrapper').style.height = 240;
		*/
}

//####################################
// DELETE REGION
//####################################

function deleteRegion(region_id) {

	var j = 0;
	var region_name2 = new Array();
	var region_id2 = new Array();
	var region_parent2 = new Array();
	var region_path2 = new Array();

	for (i=0; i < region_name1.length; i++) {

		if (region_id1[i] != region_id) {
			region_name2[j] = region_name1[i];
			region_id2[j] = region_id1[i];
			region_parent2[j] = region_parent1[i];
			region_path2[j] = region_path1[i];
			j++;
		}
	}
	
	region_name1 = region_name2;
	region_id1 = region_id2;
	region_parent1 = region_parent2;
	region_path1 = region_path2;
	
	/*
	if (region_name1.length == 2)
		document.getElementById('region_name_div').style.height = 70;
	if (region_name1.length == 1)
		document.getElementById('region_name_div').style.height = 35;
	if (region_name1.length == 0)
		document.getElementById('region_name_div').style.height = 0;
	*/
	
	// Adjust the height of the table
	adjustEditHeight();
	
	writeRegionInnerHTML();

}

//####################################
// SHOW/HIDE DIVS
//####################################

function div1Show () {
	document.getElementById('div1').style.visibility='visible'; document.getElementById('div1').style.display='';
	document.getElementById('div1').style.visibility='visible';
	document.getElementById('dd_arrow_img1').src='/images/dropdown_up.gif';
	document.getElementById('dd_arrow1').value = 1;
}

function div1Hide () {
	document.getElementById('div1').style.visibility='visible'; document.getElementById('div1').style.display='none';
	document.getElementById('div1').style.visibility='hidden';
	document.getElementById('dd_arrow_img1').src='/images/dropdown_down.gif';
	document.getElementById('dd_arrow1').value = 0;
}

function div2Show () {
	document.getElementById('div2').style.visibility='visible';
	document.getElementById('div2').style.display='';
	document.getElementById('dd_arrow_img2').src='/images/dropdown_up.gif';
	document.getElementById('dd_arrow2').value = 1;
}

function div2Hide () {
	document.getElementById('div2').style.visibility='visible';
	document.getElementById('div2').style.display='none';
	document.getElementById('dd_arrow_img2').src='/images/dropdown_down.gif';
	document.getElementById('dd_arrow2').value = 0;
}

function dropdownDisplay1 () {

	var dd_arrow1 = document.getElementById('dd_arrow1').value;

	if (dd_arrow1 == 0) {
		div1Show();
		div2Hide();
	} else {
		div1Hide();
	}
}

function dropdownDisplay2 () {

	var dd_arrow2 = document.getElementById('dd_arrow2').value;

	if (dd_arrow2 == 0) {
		div2Show();
		div1Hide();
	} else {
		div2Hide();
	}
}

//####################################
// DISPLAY/HIDE ERROR
//####################################

function displayError (error,divNum,fieldID,scroll) {

	document.getElementById('errorDivBox'+divNum).style.visibility='visible';
	document.getElementById('errorDivBox'+divNum).style.display='';
	
	if (scroll == 'true')
		document.getElementById('errorDivBox'+divNum).scrollIntoView();
		
	document.getElementById('errorDivBox'+divNum).innerHTML = error;

	if (fieldID != undefined && fieldID != '')
		document.getElementById(fieldID).focus();

	setTimeout(function() { hideError(divNum); }, 5000);
}

function hideError (divNum) {

	document.getElementById('errorDivBox'+divNum).style.visibility='hidden';
	document.getElementById('errorDivBox'+divNum).style.display='none';
}

//####################################
// CHECK TOGGLE CASE
//####################################

function titleCaseCheck(textValue,fieldID) {
	if (document.getElementById("toggle_status").value == 1)
		titleCase(textValue,fieldID);
}

//####################################
// CHANGE TO TITLE CASE
//####################################

function titleCase(textValue,fieldID) {

	var o_split = textValue.split(" ");
	for (i=0;i<o_split.length;i++) {
		if (i == 0) {
			o_split[i] = (o_split[i].substring(0,1)).toUpperCase() + o_split[i].substring(1).toLowerCase();
		} else { 
		  	o_split[i] = (o_split[i].substring(0,1)).toUpperCase() + o_split[i].substring(1).toLowerCase();
		}
	}
	document.getElementById(fieldID).value = o_split.join(' ');
}

//####################################
// CHANGE TOGGLE CASE
//####################################

function changeToggle() {

	var toggle_status = document.getElementById("toggle_status").value;
	
	if (toggle_status == 1) {
		document.getElementById("toggle_status").value = 0;
		document.getElementById("toggleButton1").value = 'Title Case On';
	} else {
		document.getElementById("toggle_status").value = 1;
		document.getElementById("toggleButton1").value = 'Title Case Off';
	}
}

//####################################
// CHECK IF FIELD IS INTEGER
//####################################

function checkNum (textValue,fieldID,divNum) {

	if(window.event)
		var keyPressed = window.event.keyCode; // IE
	else
		var keyPressed = e.which; // Firefox
	
	if (keyPressed != 13 && keyPressed != 9 && keyPressed != 116) {

		var reg = new RegExp(/^[0-9 ]+$/);
		
		if (!reg.test(textValue)) {
		
			displayError('Please only use numbers in this field!',divNum,fieldID,'false');
			
			var textValue2 = '';
	
			for (i=0;i<=textValue.length;i++) {
		
				var char = textValue.substr(i,1);
			
				if (reg.test(char))
					textValue2 = textValue2 + char;
			}
			
			document.getElementById(fieldID).value = textValue2;
		}
	}
}

//####################################
// COUNT ALLOWED CHARS
//####################################

function countChars(maxChars,fieldText,fieldName,countName) {

	var charCount = fieldText.length;
	
	var charLeft = maxChars - charCount;
	
	if (charCount > maxChars) {
		var fieldText = fieldText.substring(0,maxChars);
		document.getElementById(fieldName).value = fieldText;
		var charLeft = 0;
	}
	
	document.getElementById(countName).value = charLeft+' chars left';
}

//####################################
// SUBMIT EDIT FORM
//####################################

//////////// DEPRECATED ///////////////
function submitEditForm (errorMsg) {
	
	if (document.getElementById('email').value == '' && document.getElementById('cat_id').value == '') {
		displayError(errorMsg,2,'','false');
	} else {
		document.requestForm.submit();
	}
}

//####################################
// LOAD PROFILE FORM
//####################################

function loadURL(theURL,folder,error) {

	var RegexUrl = /http:\/\/www.([0-9]+)?/
	
	if (RegexUrl.test(theURL) == true && theURL != 'http://www.')
		document.location.href = '/'+folder+'/'+theURL.replace("http://","")+'/';
	else
		alert(error);
}

function loadUrlPrefix(field) {

	var url = document.getElementById(field);
	
	if (url.value=='')
		url.value = 'http://www.';
	
	url.focus();
    
	url.value = url.value; 
}

//####################################
// AJAX START
//####################################

function ajaxStart() {

	var xmlhttp;
	if (window.XMLHttpRequest) {
		// code for IE7+, Firefox, Chrome, Opera, Safari
		xmlhttp=new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		// code for IE6, IE5
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		//alert("Your browser does not support XMLHTTP!");
	}
	
	return xmlhttp;
}

//####################################
// AJAX GET IMAGE PREVIEW
//####################################

function ajaxGetImage(theFile,theDiv,domain) {

	var xmlhttp = ajaxStart();

	var url = "domain="+domain;
	
	xmlhttp.onreadystatechange=stateChanged;
	xmlhttp.open("GET",theFile+url,true);
	
	xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlhttp.setRequestHeader("Content-length", url.length);
	xmlhttp.setRequestHeader("Connection", "close");
	
	function stateChanged() {
	
		if(xmlhttp.readyState==4) {
			document.getElementById(theDiv).innerHTML=xmlhttp.responseText;
		}
	}
	
	xmlhttp.send(url);

}

//####################################
// DISPLAY PREVIEW
//####################################

function displayPreview(object,domain,cc,l) {

	var x = object.offsetLeft + 30;
	var y = object.offsetTop - 110;

	document.getElementById("previewWin").style.left=x+'px';
	document.getElementById("previewWin").style.top=y+'px';
	document.getElementById("previewWin").style.visibility='';
	document.getElementById("previewWin").style.display='';
	
	document.getElementById("previewWin").innerHTML = '<img src="/cache/'+cc+'/previews_'+l+'/'+domain+'.png" width="280" height="210" border="1">';
	
	//var uniq = Number(new Date());
	//ajaxGetImage('/preview.php?uniq='+uniq+'&','previewWin',domain);
}

//####################################
// HIDE PREVIEW
//####################################

function hidePreview(object) {

	document.getElementById("previewWin").style.visibility='hidden';
	document.getElementById("previewWin").style.display='none';
}

//####################################
// DISPLAY GLOBAL MENU
//####################################

//displayPreview(this,'<?=$domain?>','<?=$global_cc?>','<?=getFirstLetterDomain($domain)?>')
function displayGlobalMenu(object) {

	var x = object.offsetLeft;
	var y = object.offsetTop + 26;

	document.getElementById("global_sites_popup").style.left=x+'px';
	document.getElementById("global_sites_popup").style.top=y+'px';
	document.getElementById("global_sites_popup").style.visibility='';
	document.getElementById("global_sites_popup").style.display='';
}

//####################################
// CHECK ENTER KEY FOR PROFILE
//####################################

function checkEnterProfile(event,value,folder) {

	  var Key = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;

	  if(Key == 13)
		loadURL(value,folder);
}

//########################################
// CHECK ENTER KEY FOR NAMESERVER PROFILE
//########################################

function checkEnterProfileNS(event,value,folder) {

	  var Key = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;

	  if(Key == 13)
		loadNS(value,folder);
}

//####################################
// LOAD NAMESERVER PROFILE FORM
//####################################

function loadNS(theNS,folder) {
	
	document.location.href = '/'+folder+'/'+theNS+'/';
}

//####################################
// CHECK ENTER KEY FOR GOOGLE SEARCH
//####################################

function checkEnterGoogle(event,url) {

	  var Key = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;

	  if(Key == 13)
		window.location.href=url;
}
